【Golang】無法在多個賦值中將 interface{} 賦給xxx (類型 string)


在把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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM