有以下內容:type FlexInt intfunc (fi *FlexInt) UnmarshalJSON(data []byte) error {? ? if data[0] != '"' {? ? ? ? return json.Unmarshal(data, (*int)(fi))? ? }? ? var s string? ? if err := json.Unmarshal(data, &s); err != nil {? ? ? ? return err? ? }? ? i, err := strconv.Atoi(s)? ? if err != nil {? ? ? ? return err? ? }? ? *fi = FlexInt(i)? ? return nil}我明白它在做什么——但我不明白(*int)(fi)其中的一部分。查看指針的值,它與-fi相同。然而,當我將該行更改為簡單時,它會執行無限循環(*int)(fi)(*int)(fi) == fifi
Golang 地址運算符和 (*int)(Type) 語法
ibeautiful
2023-07-04 09:57:42