2017-11-15 8 views
-1

のための右のタイプ何.---私は、次のYAMLファイルを持っているとcameraidsを反復処理したいマムシ

--- 
profiles: 
    HDready: ' -vcodec libx264 -pix_fmt yuv420p -crf 23 -s 1280x720 ' 
    mobile: ' -vcodec libx264 -pix_fmt yuv420p -crf 23 -s 480x270 ' 

cameraids: 
    111: 
    fps: 30 
    191: 
    fps: 50 
    851: 
    fps: 50 

私はcameraidsとプロファイルを反復するために、今したいので、私はcameraidsのための変数を宣言この

var camids map[string]interface{}

fmt.Println(reflect.TypeOf(viper.Get("cameraids")))印刷物と同じですが、私はマムシ

からマップを取得しようとすると、私はいつも次のようなエラー no new variables on left side of :=を得るように10

camids := viper.GetStringMap("cameraids")

私が誤解したことを説明し、助けてください。

答えて

3

あなたは上記のcamids

var camids map[string]interface{} 

を宣言した場合は、既に宣言された変数camids以来:=を使用する必要はありません。
は、だから書く:

camids = viper.GetStringMap("cameraids") 



:=をあなたは変数を宣言したいときに使用すると同時に、それに値を代入しています。

=は、変数を事前に宣言していて、値を割り当てている場合に使用されます。

+0

ありがとうございますが、私は 'video-convert.go:12:6:camids declared and not used'を取得しました。あなたはこのスニペットで完全なコードを見ることができます。https://gitlab.com/aleks001/visit-at/snippets/ 1684621 – Aleksandar

+0

Goでは、変数を宣言してから使用することはできません。あなたは 'camids'変数をまったく使っていますか?あなたが提供したリンクを開くことができません_ – Mihailo

+0

@Aleksandar gitlabリンクが機能していません(404)。スニペットをhttps://play.golang.comまたはhttps://gist.github.comに投稿してください。ありがとう。 – biosckon

関連する問題