亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Go中的可選參數?

Go中的可選參數?

Go
慕沐林林 2021-04-06 13:15:12
Go可以有可選參數嗎?還是可以只定義兩個具有相同名稱和不同數量參數的函數?
查看完整描述

3 回答

?
慕無忌1623718

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

Go沒有可選參數,也不支持方法重載:

如果方法分派也不需要進行類型匹配,則可以簡化方法分派。其他語言的經驗告訴我們,使用具有相同名稱但簽名不同的多種方法有時會很有用,但在實踐中也可能會造成混淆和脆弱。在Go的類型系統中,僅按名稱進行匹配并要求類型一致是簡化的主要決定。


查看完整回答
反對 回復 2021-04-26
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

一種實現類似可選參數的好方法是使用可變參數。該函數實際上會接收您指定的任何類型的切片。


func foo(params ...int) {

    fmt.Println(len(params))

}


func main() {

    foo()

    foo(1)

    foo(1,2,3)

}


查看完整回答
反對 回復 2021-04-26
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您可以使用包含以下參數的結構:


type Params struct {

  a, b, c int

}


func doIt(p Params) int {

  return p.a + p.b + p.c 

}


// you can call it without specifying all parameters

doIt(Params{a: 1, c: 9})


查看完整回答
反對 回復 2021-04-26
  • 3 回答
  • 0 關注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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