неизвестное поле в 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}