2016-06-13 26 views
7

構造体を作成しようとしていますが、フィールドが不明であると私にエラーが表示されています。構造体リテラルの不明なフィールド

私は初期化しようとしている構造体は次のとおりです。

package yelk 

type PhoneOptions struct { 
    phone string 
    cc string 
    lang string 
} 

そして、私はこのようなcli.goPhoneOptions構造体を初期化しようとしている:

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 

すべてThe StackOverflow pこのエラーで見たostsは、ネストされた構造体のようです。私は何が間違っているのだろうかと思っています。 cli.goは、私がそれにgo buildを実行しようとするとこのエラーを出すので、私はそれを実行している入力ではないと思います。

これはどうして起こりますか?

答えて

26

小文字で始まるフィールドはパッケージ内部で公開されていません。別のパッケージからフィールドを参照する場合は、大文字で始める必要があります。

package yelk 

type PhoneOptions struct { 
    Phone string 
    Cc string 
    Lang string 
} 

、その後

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

ああ、本当に、それを知りませんでした!ありがとう、それを試みる! –

+0

素晴らしい!できます! –

関連する問題