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

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

如何分配鍵,值來(lái)映射[接口{}]接口{}?

如何分配鍵,值來(lái)映射[接口{}]接口{}?

Go
不負(fù)相思意 2022-09-05 17:30:45
var cache atomic.Valuefunc setResToCache(res *utils.InterfaceMap) error {    resMap := res.ToInterfaceMap()    val := resMap[constant.key] // constant.key is a constant string    val, ok := val.(string)    if !ok {        return errors.New("type assertion failed")    }    someRes := model.someRes{        Title:    val,    }    Cache.Store(someRes)    return nil}關(guān)于實(shí)用工具。接口地圖type InterfaceMap sync.Map//ToInterfaceMapfunc (im *InterfaceMap) ToInterfaceMap() map[interface{}]interface{} {    iim := make(map[interface{}]interface{})    m := (*sync.Map)(im)    m.Range(func(k, v interface{}) bool {        iim[k] = v        return true    })    return iim}我有一些類似于上面的代碼,當(dāng)我想要編寫單元測(cè)試時(shí),我有一個(gè)問(wèn)題。    {        name: "test",        args: args{            res: &utils.InterfaceMap{                // How to assign k,v here            },        },        wantErr: false,    },如何分配鍵,值?map[interface{}]interface{}它實(shí)際上是,所以我使用斷言,但傳入的參數(shù)是 。map[string]stringmap[interface{}]interface{}我想向映射中添加一些,以便我可以成功測(cè)試代碼。string: string
查看完整描述

2 回答

?
小唯快跑啊

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

在測(cè)試文件中創(chuàng)建簡(jiǎn)單的函數(shù)以輸入,并在函數(shù)內(nèi)部,將這些值寫入并強(qiáng)制轉(zhuǎn)換為鍵入并返回引用。示例如下。map[string]stringsync.MapInterfaceMap


func createMockInterfaceMap(in map[string]string) *utils.InterfaceMap{

    mockMap := sync.Map{}

    for key, value := range in {

        mockMap.Store(key, value)

    }


    iMap := utils.InterfaceMap(mockMap)


    return &iMap

}

{

    name: "test",

    args: args{

        res: createMockInterfaceMap(map[string]string{

            `key1`:`value1`,

            `key2`:`value2`,

        }),

    },

    wantErr: false,

},


查看完整回答
反對(duì) 回復(fù) 2022-09-05
?
catspeake

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

要傳入 一個(gè) ,它需要被這樣定義。map[interface{}]interface{}


您可以使用如下所示的方式將 a 轉(zhuǎn)換為 a:map[string]stringmap[interface{}]interface{}


func MapConvert(mss map[string]string) map[interface{}]interface{} {

    ifaceMap := map[interface{}]interface{}{}

    for k, v := range mss {

        ifaceMap[k] = v

    }

    return ifaceMap

}

下面是使用類型定義的示例:


type InterfaceMap map[interface{}]interface{}


func MapConvert(mss map[string]string) *InterfaceMap {

    ifaceMap := InterfaceMap{}

    for k, v := range mss {

        ifaceMap[k] = v

    }

    return &ifaceMap

}

下面是一個(gè)完整的運(yùn)行示例:


https://play.golang.org/p/UPKqqZnFis-


查看完整回答
反對(duì) 回復(fù) 2022-09-05
  • 2 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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