结构文字中的未知字段

我尝试创建一个结构,它给我一个错误,告诉我字段是未知的。

我要初始化的结构是:

package yelk


type PhoneOptions struct {
phone string
cc    string
lang  string
}

我试着在 cli.go中初始化一个 PhoneOptions结构,就像这样:

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 文章似乎都来自嵌套结构。我在想我哪里做错了。如果我只是尝试在它上面运行 go build,那么 cli.go会给出这个错误,所以我认为它不是我一直用来运行它的输入。

知道为什么会这样吗?

47710 次浏览

以小写字符开头的字段是包内部的,不公开,如果您想从另一个包引用该字段,则需要以大写字符开头,例如。

package yelk


type PhoneOptions struct {
Phone string
Cc    string
Lang  string
}

然后

number := os.Args[1]
phoneOptions := yelk.PhoneOptions{Phone: number}