2017-07-31 14 views
1

をループせずに値を取得することはできません。私はそれが本当にetcdと関係ないと思いますか?clientv3を行くetcdは - なぜ私は行くし、[OK]をやってきたが、私は、私は理解できないことを行動に遭遇している学ぶことをしようとしている結果

私はキー/値でetcd v3の設定をしています。 (

fmt.Println(resp.Kvs.Value) 

しかし、これは動作しませんし、私は例のようにそれをしなければならない。私はそれを取得するときに私が使用して私の値を取得することができると期待しているだろう(hereを参照)「を取得」単一の結果によって上記のリンク)とループ内でそれを公開します

for _, ev := range resp.Kvs { 
fmt.Printf("%s : %s\n", ev.Key, ev.Value) 
} 

あなたは直接値を取得することは不可能であり、その上で何が起こっていることは、ループが必要になり、なぜ私が理解するのに役立つ可能性がありますか?

答えて

1

返さ合計カウントが1の場合でも、一つだけの結果があります知っている場合は、あなたがしている、レスポンスオブジェクトを使用すると、単一のキーまたは多くのキーを取得しているかどうかと同じであるので、それは複数の結果のために提供しなければなりませんそれをループに義務はない、あなただけの最初の結果参照することができます。もちろん

resp.Kvs[0].Value 

を、あなたは結果が第1(len(resp.Kvs) > 0)があったことを確認する必要がありまたはそれがパニックになります。

+0

ありがとう、それは意味があり、私のコードでうまくいきます、本当に助けに感謝します。私はそれを投票しましたが、私はここで新しいラウンドであり、評判は15以下ですが、それはまだ表示されません。 – bunoi

関連する問題