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

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

返回接收者本身(Go)的方法的目的是什么?

返回接收者本身(Go)的方法的目的是什么?

Go
犯罪嫌疑人X 2021-04-08 17:15:19
pkg go / token中的此功能使我想知道為什么我們需要一種返回接收器本身的方法。// Token source positions are represented by a Position value.// A Position is valid if the line number is > 0.//type Position struct {    Filename string; // filename, if any    Offset   int;    // byte offset, starting at 0    Line     int;    // line number, starting at 1    Column   int;    // column number, starting at 1 (character count)}// Pos is an accessor method for anonymous Position fields.// It returns its receiver.//func (pos *Position) Pos() Position { return *pos }
查看完整描述

2 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

這是在您使用匿名字段將位置“子類化”的情況下:

用類型聲明但沒有顯式字段名稱的字段是匿名字段。此類字段類型必須指定為類型名稱T或指向類型名稱* T的指針,并且T本身可能不是指針類型。非限定類型名稱充當字段名稱。

因此,如果以這種方式子類化Position,則可能希望調用者能夠訪問“父” Position結構(例如:如果您要調用String()位置本身,而不是子類型)。Pos()返回它。


查看完整回答
反對 回復 2021-04-26
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

在這樣的結構中(來自pkg / go / ast / ast.go),token.Position以下是struct字段,但沒有任何名稱:


// Comments


// A Comment node represents a single //-style or /*-style comment.

type Comment struct {

    token.Position;         // beginning position of the comment

    Text            []byte; // comment text (excluding '\n' for //-style comments)

}

因此,當它沒有名稱時,如何訪問它?那是什么.Pos()。給定一個Comment節點,您可以token.Position使用其.Pos上的方法來獲取它:


 comment_position := comment_node.Pos ();

comment_position現在,這里包含未命名(“匿名”)結構字段的內容token.Position。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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