tor*_*rek 7
T(x)Tx
从函数的声明中可以看出:
func (lt *LeaveType) UnmarshalJSON(b []byte) error {
ltLeaveTypeUnmarshalJSON*LeaveTypeencoding/jsonLeaveType*LeaveTypeLeaveType
encoding/jsonUnmarshalJSONUnmarshalJSONencoding/jsonencoding/json
LTLeaveTypeencoding/json*LeaveTypeLT
我们可以这样做:
func (lt *LeaveType) UnmarshalJSON(b []byte) error {
type LT LeaveType
var r LT
err := json.Unmarshal(b, &r)
if err != nil {
panic(err)
}
// ...
}
rLeaveTyper*lt
*lt = LeaveType(r) // an ordinary conversion
*ltUnmarshalJSONrUnmarshalJSON
(*LT)(lt)*LT*LT(lt)*(LT(lt))