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

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

帶接收器的功能類型

帶接收器的功能類型

Go
慕勒3428872 2021-04-06 21:19:06
如何聲明帶有接收者作為類型的函數?我以為我可以做到以下幾點,但是它抱怨語法錯誤:type myFunc func(s *State) (blah Blah) errfunc main() {    b := &Blah{}    s := &State{}    var f = myF    s.f(b)}func (s *State) myF(blah Blah) err {    ...}
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

您可以定義將接收方作為其第一個參數的函數類型(本質上就是方法)。


type myFunc func(*State, Blah) error

然后,您可以使用方法表達式來創建該類型的值:


type Blah struct{}

type State struct{}


func (s *State) myF(Blah) error { return nil }


var f myFunc = (*State).myF

如果M在類型T的方法集中,則TM是可以作為常規函數調用的函數,該函數具有與M相同的參數,并以作為方法的接收者的附加參數為前綴。


[...]


表達方式


T.Mv

產生一個與Mv等效的函數,但第一個參數是顯式接收器;它有簽名


func(tv T, a int) int


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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