golang 小筆記 要點tips 持續更新中

2021-10-19 19:02:51 字數 1879 閱讀 7088

當接收者為值型別時,無論呼叫者是值型別還是指標型別,接收者的更改都不會影響呼叫者。

當接收者是指標型別時,無論呼叫者是值型別還是指標型別,接收者的更改均會影響呼叫者。

type person struct 

func (p person) getname() string

func (p person) setname(name string)

func (p *person) getage() int

func (p *person) setage(age int)

func testf(test *testing.t)

sanji := &person

fmt.printf("my name is %s, i'm %d years old \n", luffy.name, luffy.age)

fmt.printf("my name is %s, i'm %d years old \n", sanji.name, sanji.age)

fmt.println(".................3 years later ......................")

luffy.setname("luffy3")

luffy.setage(luffy.age + 3)

sanji.setname("sanji3")

sanji.setage(sanji.age + 3)

fmt.printf("my name is %s, i'm %d years old \n", luffy.getname(), luffy.getage())

fmt.printf("my name is %s, i'm %d years old \n", sanji.getname(), sanji.getage())

}

列印結果

my name is luffy, i'm 21 years old

my name is sanji, i'm 23 years old

.................3 years later ......................

my name is luffy, i'm 24 years old

my name is sanji, i'm 26 years old

總結:

var woman personinte***ce = woman{} //這裡報錯,錯誤提示見下面貼圖

總結:實現了接收者是值型別的方法,相當於自動實現了接收者是指標型別的方法;而實現了接收者是指標型別的方法,不會自動生成對應接收者是值型別的方法。【

推薦閱讀:

人工智慧課程學習筆記要點

簡單 並不意味著微不足道 trivial 簡單也可以有強大的力量。深藍 deep blue 的推土機智慧型 以強大的算力彌補對定式和棋局理解記憶上的不足,與人類智慧型並不完全相同。隨時演算法 逐步深入,獲取保單,保證在規定的時間內給出最好的答案。基於規則的專家系統,將知識用簡單的規則加以表示。基於規...

js小tips和小筆記

a 會自動把字串 如果 變為number型別 如 var a 1 b 1 a 1 a 2a b 1 b 2b arr.slice startindex,endindex 的結果是得到乙個 startindex,endindex 區間內的陣列,arr本身不變,slice是個純函式 arr.splice...

正規表示式學習筆記 要點整理

1 介紹和作用 在編寫處理字串的程式或網頁時,經常會有查詢符合某些複雜規則的字串的需要。正規表示式就是用於描述這些規則的語法。主要作用 分割 匹配 查詢 替換字串 2 php中兩個常用的正則函式 preg match mode,string subject,array matches ereg mo...