неизвестное поле в struct literal

Я пытаюсь создать структуру, и это дает мне ошибку, говоря мне, что поле неизвестно.

Я пытаюсь инициализировать структуру:

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 на нем, поэтому я не думаю, что это те материалы, с которыми я работал.

Любая идея, почему это происходит?

Ответы

Ответ 1

Поля, начинающиеся с символов нижнего регистра, являются внутренними пакетами и не отображаются. Если вы хотите ссылаться на поле из другого пакета, ему нужно начинать с символа верхнего регистра, например.

package yelk

type PhoneOptions struct {
    Phone string
    Cc    string
    Lang  string
}

а потом

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