2 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
(t TestContent)不是返回類(lèi)型。(t TestContent)表示這CalculateHash是TestContent結(jié)構(gòu)體的一個(gè)方法。這個(gè)函數(shù)的返回類(lèi)型是([]byte, error)。
它用于 的實(shí)例TestContent,即:
var t TestContent
bytes, err := t.CalculateHash()

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
實(shí)際上,它是一個(gè)方法聲明。來(lái)自文檔:
方法是帶有接收器的函數(shù)。方法聲明將標(biāo)識(shí)符(方法名稱(chēng))綁定到方法,并將方法與接收者的基類(lèi)型相關(guān)聯(lián)。
MethodDecl = "func" [Receiver][1] MethodName Signature [ FunctionBody ] .
Receiver = Parameters .
然而:
Go 沒(méi)有課程。但是,您可以在類(lèi)型上定義方法。方法是具有特殊接收器參數(shù)的函數(shù)。接收者出現(xiàn)在 func 關(guān)鍵字和方法名稱(chēng)之間的自己的參數(shù)列表中。
因此,在您的示例中,(t TestContent)是方法聲明的接收者。
以下 python 片段大致是 Golang 版本:
#!/usr/bin/env python3
class TestContent:
def __init__(self):
self.x: str = ""
def CalculateHash():
pass
testContent = TestContent()
testContent.CalculateHash = CalculateHash
- 2 回答
- 0 關(guān)注
- 161 瀏覽
添加回答
舉報(bào)