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

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

由類型文字定義的類型的struct字段上的方法

由類型文字定義的類型的struct字段上的方法

Go
不負相思意 2021-05-14 06:50:01
解碼JSON時,我總是為每個對象顯式編寫一個結構,以便可以在父結構中為單個對象實現(xiàn)Stringer接口,如下所示:type Data struct {    Records []Record}type Record struct {    ID int    Value string}func (r Record) String() string {    return fmt.Sprintf("{ID:%d Value:%s}", r.ID, r.Value)}我最近了解到可以對匿名結構進行嵌套。此方法對于定義要解碼的數(shù)據(jù)的結構更加簡潔:type Data struct {    Records []struct {        ID int        Value string    }}但是,是否可以在結構的成員(特別是匿名結構的成員)上定義方法?類似于第一個代碼塊中的Stringer接口實現(xiàn)。
查看完整描述

1 回答

?
鴻蒙傳說

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

不可以,方法只能附加到同一包中定義的命名類型。從規(guī)格:


 方法是具有接收器的功能。方法聲明將標識符(方法名稱)綁定到方法。它還將方法與接收者的基本類型相關聯(lián)。


MethodDecl   = "func" Receiver MethodName Signature [ Body ] .

Receiver     = "(" [ identifier ] [ "*" ] BaseTypeName ")" .

BaseTypeName = identifier .

接收器類型必須采用T或* T的形式,其中T是類型名稱。用T表示的類型稱為接收方基本類型;它不能是指針或接口類型,并且必須在與方法相同的程序包中聲明。據(jù)說該方法已綁定到基本類型,并且該方法的名稱僅在該類型的選擇器中可見。


Records第二個OP示例中的字段類型使用類型文字(即)來定義。不滿足上述“類型名稱”條件。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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