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

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

函數(shù)定義了未命名的參數(shù),但調(diào)用者仍然傳遞值

函數(shù)定義了未命名的參數(shù),但調(diào)用者仍然傳遞值

Go
開心每一天1111 2022-06-01 18:02:34
我試圖了解 Golang 中的 Wire 庫,并發(fā)現(xiàn)其中wire.go有一個函數(shù)如下所示:func NewSet(...interface{}) ProviderSet {    return ProviderSet{}}...interface{})對于為什么參數(shù)未命名(意味著未在函數(shù)內(nèi)部使用)但調(diào)用者仍將有意義的值傳遞給它,這對我來說看起來很陌生?var Set = wire.NewSet(    wire.Value(Foo(41)),    provideFooBar)
查看完整描述

1 回答

?
翻過高山走不出你

TA貢獻(xiàn)1875條經(jīng)驗 獲得超3個贊

參數(shù)被命名或未命名與調(diào)用者是否必須為它們傳遞值無關(guān)。未命名只是意味著它們不能在函數(shù)內(nèi)部使用(不能被引用)。

NewSet有一個可變參數(shù),這意味著可以將任意數(shù)量的參數(shù)傳遞給它,這些參數(shù)可以分配給該類型,并且可以分配任何值interface{}(所有值都實現(xiàn)了空接口)。

您看到的“空”實現(xiàn)NewSet()只是文檔和編譯器的占位符。生成的代碼將使用傳遞的參數(shù)。

如果你有一個功能:

func dummy(int) {}

你不能這樣稱呼它dummy(),這是一個編譯時錯誤。您只能通過將int值傳遞給它來調(diào)用它,例如dummy(1).


查看完整回答
反對 回復(fù) 2022-06-01
  • 1 回答
  • 0 關(guān)注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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