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

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

將動態(tài)參數(shù)傳遞給函數(shù)

將動態(tài)參數(shù)傳遞給函數(shù)

Go
皈依舞 2023-06-12 16:33:45
我有一個函數(shù)應該做這樣的事情func getA(m *m.TSR, bl string) string {    runParams, exist := m.BuildParams.Before[bl]    if exist {        runParamsMap, ok := runParams.(map[interface{}]interface{})        if ok {            run, ok := runParamsMap["builder"]            if ok {                return run.(string)            }        }    }    return ""}func getB(m *m.TSR, bl string) string {    runParams, exist := m.BuildParams.After[bl]    if exist {        runParamsMap, ok := runParams.(map[interface{}]interface{})        if ok {            run, ok := runParamsMap["builder"]            if ok {                return run.(string)            }        }    }    return ""}這兩個函數(shù)都按預期工作,但我想知道是否有一種方法可以只使用一個處理相同的函數(shù)?唯一的區(qū)別是之前和之后m.BuildParams.Before[bl]m.BuildParams.After[bl]所有的重置都是完全一樣的,知道如何在不刪除函數(shù)外的那些行的情況下將它們組合起來……。也許有額外的參數(shù)....
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

一種選擇是將公共部分移動到另一個函數(shù),例如get(),并更改getA()并getB()調用它get():


func getB(m *m.TSR, bl string) string {

    runParams, exist := m.BuildParams.Before[bl]

    return get(runParams, exist)

}


func getB(m *m.TSR, bl string) string {

    runParams, exist := m.BuildParams.After[bl]

    return get(runParams, exist)

}


func get(runParams interface{}, exists bool) string {

    if exist {

        runParamsMap, ok := runParams.(map[interface{}]interface{})

        if ok {

            run, ok := runParamsMap["builder"]

            if ok {

                return run.(string)

            }

        }

    }

    return ""

}

如果m.BuildParams.Before和m.BuildParams.After屬于同一類型(是 it commonType),您可以做得更好:


func getA(m *m.TSR, bl string) string {

    return get(m.BuildParams.Before, bl)

}


func getB(m *m.TSR, bl string) string {

    return get(m.BuildParams.After, bl)

}

只有第一行發(fā)生了變化get():


func get(common commonType, bl string) string {

    runParams, exist := common[bl]

    // rest is same

}


查看完整回答
反對 回復 2023-06-12
  • 1 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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