2つの変数を宣言された変数とそれ以外の変数がある場合に2つの値を返す関数に2つの変数を割り当てる方法はありますか?例えばGolang変数の割り当て
:上記のコードで
var host string
if host, err := func(); err != nil {}
、ホストが宣言が、ERRはありません。
2つの変数を宣言された変数とそれ以外の変数がある場合に2つの値を返す関数に2つの変数を割り当てる方法はありますか?例えばGolang変数の割り当て
:上記のコードで
var host string
if host, err := func(); err != nil {}
、ホストが宣言が、ERRはありません。
あなたの例では、単にホストを宣言するべきではありません。そのような部分的な割り当てを行う方法はありません... :=
を使用して宣言と割り当てを短くするか、=
を使用していて、割り当てを行うだけです。私は個人的にGOにはvar
という単語を書くことはほとんどありません。
1つ以上の変数ですでに宣言されている変数が1つしかない場合は、:=
を代入することはできますが、その逆は真ではありません。左辺値の1つ以上が既に宣言されていない場合は、=
を使用できません。
2番目のステートメントがif/forステートメント。宣言された変数 "host"はfunc()によって返された値を保持しますか? – Keeto
@Keetoしかし、あなたがすると、 'ホスト'は 'if'のスコープ内でのみ利用可能になります。遊びの例があります。 https://play.golang.org/p/3ONeB2D6kH ホストがifの外側にないことがわかります。 – evanmcdonnal
if
に:=
を使用すると、if
の範囲で宣言された新しい変数が常に得られます。 if
に続いて、host
の値は以前と同じになります。これを行うには、if
の前にhost
とerr
の両方を宣言する必要があります(if
では:=
を使用しないでください)。
これは自動的に実行されます。 :=新しい変数がある場合は=、両方存在する場合は=です。 – Puzzle84
2番目の文がif/for文の場合。宣言された変数 "host"はfunc()によって返された値を保持しますか? – Keeto
短い答えはあなたが求めていることはできません。 'err'も宣言しなければなりません。 – Endophage