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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

類型定義和接口轉(zhuǎn)換

類型定義和接口轉(zhuǎn)換

Go
慕田峪4524236 2023-08-07 11:10:51
我已經(jīng)嘗試過以下代碼:package mainimport (    "fmt"    "sync")type T stringfunc main() {    var a sync.Map // map[interface{}]interface{}    var c T    // a.Store("a", T("A"))    a.Store("a", "A")    b, _ := a.Load("a")    c = b.(T)    fmt.Println(c)}這會(huì)得到一個(gè)錯(cuò)誤panic: interface conversion: interface {} is string, not main.T。但是,如果我使用注釋行,它就會(huì)起作用。T和不是string相同的底層類型嗎?這背后是什么?
查看完整描述

1 回答

?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

這將 a 存儲(chǔ)string在地圖中:

a.Store("a", "A")

這會(huì)從映射中加載值,但返回一個(gè)指向上面插入的值的接口,該接口是string

b, _ := a.Load("a")

這將檢查是否bT

c = b.(T)

b是 a string,因此斷言失敗。

如果你這樣做:

a.Store("a",T("A"))

那么斷言應(yīng)該起作用,因?yàn)橛成渲兄档念愋同F(xiàn)在是 a T。


查看完整回答
反對 回復(fù) 2023-08-07
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號