什么是毒蛇的正确类型

时间:2017-11-15 19:41:13

标签: go

我有以下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变量

var camids map[string]interface{}

fmt.Println(reflect.TypeOf(viper.Get("cameraids")))打印相同,但当我尝试从viper获取地图时,我总是收到以下错误no new variables on left side of :=

camids := viper.GetStringMap("cameraids")

请您解释并帮助我误解,谢谢。

1 个答案:

答案 0 :(得分:3)

如果您已宣布camids

var camids map[string]interface{}

以上,您不需要使用:=,因为已经声明了变量camids
所以写一下:

camids = viper.GetStringMap("cameraids")


当您想要声明变量并同时为其赋值时,使用

:=

如果您事先已经声明了变量并且只是为其赋值,则使用

=