2016-06-13 16 views
7

Sto provando a creare una struttura e mi sta dando un errore, dicendomi che il campo è sconosciuto.campo sconosciuto in struct letterale

La struct che sto cercando di inizializzazione è:

package yelk 

type PhoneOptions struct { 
    phone string 
    cc string 
    lang string 
} 

E sto cercando di inizializzare una struct PhoneOptions in cli.go come questo:

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

faccio go run cli.go 5555555555 ma mi dà un error

./cli.go:29: unknown yelk.PhoneOptions field 'phone' in struct literal 

Tutto The StackOverflow p Gli host che ho visto con questo errore sembrano provenire da strutture annidate. Mi sto chiedendo cosa sto sbagliando. cli.go darà questo errore se provo solo a eseguire go build su di esso, quindi non penso che siano gli input con cui l'ho eseguito.

Qualche idea del motivo?

risposta

26

I campi che iniziano con caratteri minuscoli sono pacchetti interni e non esposti, Se si desidera fare riferimento al campo da un altro pacchetto, è necessario iniziare con un carattere maiuscolo, ad es.

package yelk 

type PhoneOptions struct { 
    Phone string 
    Cc string 
    Lang string 
} 

e poi

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

Oh davvero, non sapeva che! Grazie, ci proverò! –

+0

Grande! Funziona! –

Problemi correlati