struct literal

时间:2016-06-13 00:51:01

标签: go

我试图创建一个结构,它给了我一个错误,告诉我该字段未知。

我尝试初始化的结构是:

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.gogo build会出现此错误,因此我不认为它是我一直在运行它的输入。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:59)

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

package yelk

type PhoneOptions struct {
    Phone string
    Cc    string
    Lang  string
}

然后

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