3 回答

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
據(jù)我目前的了解:函數(shù)是“全局”的,這意味著我不必導(dǎo)入包即可使用函數(shù),它們始終存在。方法綁定到包。這樣對(duì)嗎?
不,那是不正確的。內(nèi)置軟件包中只有幾個(gè)功能始終可用。其他所有內(nèi)容都需要導(dǎo)入。
術(shù)語(yǔ)“方法”是面向?qū)ο蟮木幊獭T贠OP語(yǔ)言中(例如C ++),您可以定義一個(gè)“類(lèi)”,該類(lèi)封裝了屬于同一類(lèi)的數(shù)據(jù)和函數(shù)。類(lèi)內(nèi)部的那些函數(shù)稱為“方法”,您需要該類(lèi)的實(shí)例才能調(diào)用這種方法。
在Go中,術(shù)語(yǔ)基本相同,盡管Go不是經(jīng)典意義上的OOP語(yǔ)言。在Go中,接收器的函數(shù)通常稱為方法(可能只是因?yàn)槿藗內(nèi)匀涣?xí)慣于OOP的術(shù)語(yǔ))。
因此,例如:
func MyFunction(a, b int) int {
return a + b
}
// Usage:
// MyFunction(1, 2)
但
type MyInteger int
func (a MyInteger) MyMethod(b int) int {
return a + b
}
// Usage:
// var x MyInteger = 1
// x.MyMethod(2)
- 3 回答
- 0 關(guān)注
- 253 瀏覽
添加回答
舉報(bào)