在把map里的string賦值給其他結構變量的時候報錯了,
中文報錯:無法在多個賦值中將 interface{} 賦給 xxx (類型 string)
英文報錯:Cannot assign interface{} to xxx (type string) in multiple assignment
錯誤的原因是因為map
type Set struct {
Set map[string]interface{} `yaml:"setting""`
}
返回的是interface類型,需要做轉換才能使用,golang提供了類型斷言來實現這類轉換:
t := i.(T)
這個表達式意思是接口i是T類型,並將它的值賦值給t。
如果i不是類型T,則這樣寫會引起panic。
為了防止panic,可能寫成下面這樣:
t, ok := i.(T)
如果接口i的類型是T,則ok則為true,否則為false。
