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

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

如何實(shí)現(xiàn)多態(tài)變參數(shù)的求和?

如何實(shí)現(xiàn)多態(tài)變參數(shù)的求和?

胡子哥哥 2019-05-25 15:30:37
求問下面的Add2這里怎么實(shí)現(xiàn)?sum為interface好像沒法任意求和?funcAdd(vars...int)(retint){varsumintfor_,v:=rangevars{//fmt.Println("v",v)sum+=v}returnsum}//這里怎么實(shí)現(xiàn)?sum為interface好像沒法任意求和?funcAdd2(vars...interface{})(retinterface{}){/*varsuminterface{}for_,v:=rangevars{switchv.(type){caseint:sum+=vcasefloat64:sum+=vcasestring:sum+=v}}*/returnsum}funcmain(){fmt.Println(Add2(1,2))fmt.Println(Add2(1,2,3))fmt.Println(Add2(2.4,3.6,1.0))fmt.Println(Add2("Hello","world","zhong"))}
查看完整描述

2 回答

?
哈士奇WWW

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

你想要的是泛型吧?湊合寫了一個(gè),忽略與第一個(gè)參數(shù)不同類型的值。
funcadd(vars...interface{})(retinterface{}){
varsuminterface{}
for_,v:=rangevars{
sum=addTo(sum,v)
}
returnsum
}
funcaddTo(suminterface{},vinterface{})(retinterface{}){
if(sum==nil){
returnv
}
switchv.(type){
caseint:
ifintSum,found:=sum.(int);found{
returnintSum+v.(int)
}
casestring:
ifstrSum,found:=sum.(string);found{
returnstrSum+v.(string)
}
}
returnsum
}
                            
查看完整回答
反對(duì) 回復(fù) 2019-05-25
  • 2 回答
  • 0 關(guān)注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報(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)