我试图创建一个结构,它给了我一个错误,告诉我该字段未知。
我尝试初始化的结构是:
package yelk
type PhoneOptions struct {
phone string
cc string
lang string
}
我正试图在PhoneOptions
中初始化cli.go
结构,如下所示:
number := os.Args[1]
phoneOptions := yelk.PhoneOptions{phone: number}
我做go run cli.go 5555555555
但它给了我一个错误
./cli.go:29: unknown yelk.PhoneOptions field 'phone' in struct literal
所有我发现此错误的StackOverflow帖子似乎来自嵌套结构。我想知道自己做错了什么。如果我只是尝试在其上运行cli.go
,go build
会出现此错误,因此我不认为它是我一直在运行它的输入。
知道为什么会这样吗?
答案 0 :(得分:59)
以小写字符开头的字段是包内部且未公开的字段。如果要从另一个包引用该字段,则需要以大写字符开头,例如。
package yelk
type PhoneOptions struct {
Phone string
Cc string
Lang string
}
然后
number := os.Args[1]
phoneOptions := yelk.PhoneOptions{Phone: number}