第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 []string 字段時出現(xiàn)不可比的類型錯誤(Go lang)

使用 []string 字段時出現(xiàn)不可比的類型錯誤(Go lang)

Go
皈依舞 2021-06-02 13:42:49
我有一個特定的 Go lang 結構對象,我正在與之交互,我希望它等于自身。我將函數(shù)傳遞給一個函數(shù),該函數(shù)只是返回它,但它通過接受接口輸入/輸出來實現(xiàn){}type Animal struct {    name string    food interface{}}type YummyFood {    calories int}func echo_back(input interface{}) interface{} {    return input}func main() {    var tiger_food = Food{calories: 1000}    var tiger = Animal{name: "Larry", food: tiger_food}    output_tiger := echo_back(tiger)    fmt.Printf("%T, %+v\n", tiger, tiger)    fmt.Printf("%T, %+v\n", output_tiger, output_tiger)    fmt.Println(tiger == output_tiger)    fmt.Println(tiger == output_tiger.(Animal))}運行此程序,您會看到tiger 和output_tiger 看起來相同并且評估為相等。偉大的。這就是我所期望的?,F(xiàn)在,嘗試將這個定義用于 YummyFoodtype YummyFood {    calories int    ingredients []string}突然之間,即使使用類型斷言,echo_back 的輸出也不會評估為與輸入相同。我收到“恐慌:運行時錯誤:比較不可比的類型 YummyFood”問題是為什么加了[]string類型會導致輸入輸出不可比?如何修改 output_tiger 以取回我放入的相同內容(即我希望它與“老虎”相同)。我如何反映 output_tiger 使其等于老虎?
查看完整描述

2 回答

?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

它不會很快,但您可以使用reflect.DeepEqual()來比較切片(或只是YummyFood)。它完成循環(huán)遍歷它以比較所有元素的工作。您可能可以創(chuàng)建一個更有效的函數(shù)來執(zhí)行此操作,但是如果那里的函數(shù)足夠快,您將為自己節(jié)省一些工作,也許還可以節(jié)省一些錯誤。:-)


查看完整回答
反對 回復 2021-06-07
  • 2 回答
  • 0 關注
  • 245 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號