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

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

非簡約類型斷言

非簡約類型斷言

Go
料青山看我應(yīng)如是 2023-06-12 16:36:35
我有以下內(nèi)容,有效:        reflectItem := reflect.ValueOf(dataStruct)        subItem := reflectItem.FieldByName(subItemKey)        switch subItem.Interface().(type) {            case string:                subItemVal := subItem.Interface().(string)                searchData = bson.D{{"data." +                   strings.ToLower(subItemKey), subItemVal}}            case int64:                subItemVal := subItem.Interface().(int64)                searchData = bson.D{{"data." +                   strings.ToLower(subItemKey), subItemVal}}        }問題是這看起來非常不簡約。我非常想簡單地獲取類型,subItem而無需在按名稱找到字段后簡單地?cái)嘌云渥约旱念愋偷?switch 語句。但是,我不確定如何支持它。想法?
查看完整描述

1 回答

?
繁花如伊

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

我不完全理解你的問題,但你正在做的事情可以很容易地縮短而不影響功能:


    reflectItem := reflect.ValueOf(dataStruct)

    subItem := reflectItem.FieldByName(subItemKey)

    switch subItemVal := subItem.(type) {

        case string:

            searchData = bson.D{{"data." + 

              strings.ToLower(subItemKey), subItemVal}}

        case int64:

            searchData = bson.D{{"data." + 

              strings.ToLower(subItemKey), subItemVal}}

    }

但除此之外,我認(rèn)為在您的情況下根本不需要類型斷言。這也應(yīng)該有效:


    reflectItem := reflect.ValueOf(dataStruct)

    subItem := reflectItem.FieldByName(subItemKey)

    searchData = bson.D{{"data."+strings.ToLower(subItemKey), subItem.Interface())


查看完整回答
反對(duì) 回復(fù) 2023-06-12
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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