当它是其中一种数字类型的引用类型别名时,我不知道如何初始化结构字段:
package main
import (
"fmt"
"encoding/json"
)
type Nint64 *int64
type MyStruct struct {
Value Nint64
}
func main() {
data, _ := json.Marshal(&MyStruct{ Value : ?? 10 ?? })
fmt.Println(string(data))
}
最佳答案
你不能,你将不得不添加一个额外的步骤playground :
func NewMyStruct(i int64) *MyStruct {
return &MyStruct{&i}
}
func main() {
i := int64(10)
data, _ := json.Marshal(&MyStruct{Value: Nint64(&i)})
fmt.Println(string(data))
//or this
data, _ = json.Marshal(NewMyStruct(20))
fmt.Println(string(data))
}
关于go - 如何在结构初始化器中使用指针类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24644676/