22-Golang方法---定義和調(diào)用

方法
方法是為特定類型定義的,只能由該類型調(diào)用的函數(shù)。

方法是添加了接收者的函數(shù)坤检,接收者必須是自定義的類型。

func (t Type) method(parameters) returns{

}
package main

import "fmt"

// 自定義結(jié)構(gòu)體
type Dog struct {
    name string
}

// 為結(jié)構(gòu)體定義方法Call, Call只能dog調(diào)用
func (dog Dog) Call() {
    fmt.Printf("%s: 汪汪\n", dog.name)
}

// 為結(jié)構(gòu)體定義方法SetName
func (dog Dog) SetName(name string) {
    dog.name = name
}

// 定義dog結(jié)構(gòu)體的PsetName方法饲梭,接受者為指針對象
func (dog *Dog) PsetName(name string) {
    dog.name = name
}

func main() {
    //聲明結(jié)構(gòu)體
    var dog Dog
    //字面量賦值
    dog.name = "小黑"
    dog.Call()

    // 初始化結(jié)構(gòu)體
    dog = Dog{"豆豆"}
    // 調(diào)用結(jié)構(gòu)體的方法
    dog.Call()

    // 更改dog的名字
    // dog.Name = "小黑"
    // dog.Call()

    // 調(diào)用結(jié)構(gòu)體方法
    dog.SetName("小黑")
    dog.Call()

    /*
            當(dāng)使用結(jié)構(gòu)體指針對象調(diào)用值接收者的方法時(shí)乘盖,Go 編譯器會自動將指針對象”解引用”為值調(diào)用方法;
            當(dāng)使用結(jié)構(gòu)體對象調(diào)用指針接收者的方法時(shí),Go 編譯器會自動將值對象”取引用”為指針調(diào)用方法;

            注:取引用和解引用發(fā)生在接收者中憔涉,對于函數(shù)/方法的參數(shù)必須保持變量類型一一對應(yīng)

            使用值接收者還是指針接收者订框,取決于是否現(xiàn)需要修改原始結(jié)構(gòu)體
                若不需要修改則使用值,若需要修改則使用指針
                若存在指針接收者兜叨,則所有方法使用指針接收者
    */

    // (&dog).PsetName("小黑") 取引用
    dog.PsetName("小黑") // 自動取引用 語法糖
    dog.Call()

    pdog := &Dog{"豆豆"}
    (*pdog).Call()
    pdog.PsetName("小黑")
    // (*pdog).Call() 自動解引用 語法糖
    pdog.Call()
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末穿扳,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子国旷,更是在濱河造成了極大的恐慌矛物,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跪但,死亡現(xiàn)場離奇詭異履羞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)屡久,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進(jìn)店門忆首,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人被环,你說我怎么就攤上這事糙及。” “怎么了筛欢?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵浸锨,是天一觀的道長。 經(jīng)常有香客問我悴能,道長揣钦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任漠酿,我火速辦了婚禮冯凹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己宇姚,他們只是感情好匈庭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著浑劳,像睡著了一般阱持。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魔熏,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天衷咽,我揣著相機(jī)與錄音,去河邊找鬼蒜绽。 笑死镶骗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躲雅。 我是一名探鬼主播鼎姊,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼相赁!你這毒婦竟也來了相寇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤钮科,失蹤者是張志新(化名)和其女友劉穎唤衫,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跺嗽,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡战授,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桨嫁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片植兰。...
    茶點(diǎn)故事閱讀 39,754評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖璃吧,靈堂內(nèi)的尸體忽然破棺而出楣导,到底是詐尸還是另有隱情,我是刑警寧澤畜挨,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布筒繁,位于F島的核電站,受9級特大地震影響巴元,放射性物質(zhì)發(fā)生泄漏毡咏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一逮刨、第九天 我趴在偏房一處隱蔽的房頂上張望呕缭。 院中可真熱鬧,春花似錦、人聲如沸恢总。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽片仿。三九已至纹安,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砂豌,已是汗流浹背厢岂。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阳距,地道東北人咪笑。 一個(gè)月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像娄涩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子映跟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容