值接收者和指標接收者

2021-10-09 19:10:15 字數 681 閱讀 7506

go語言中有兩種型別的接收者:值型別的接收者和引用型別的接收者

如果使用值接收者宣告方法,呼叫時會使用這個值的乙個副本來執行。

當呼叫使用指標接受者宣告的方法時,這個方法會共享呼叫方法時接收者所指向的值。

內建型別(值傳遞):數值型別,字串型別,布林型別

引用型別(應用傳遞):切片,對映,通道,介面,函式型別

規範裡定義的方法集的規則:

values

methods receivers

t(t t)

*t(t t)and(t *t)

從接收者型別的角度來看方法集:

methods receviers

values

(t t)

t and *t

(t *t)

*tpostscript:

package main

import

"fmt"

type info inte***ce

type user struct

func

(u *user)

message()

func

sendinfo

(i info)

func

main()

sendinfo

(u)}

Go 值接收者和指標接收者 區別

首先回顧一下go語言值型別和指標型別直接呼叫其值接收者方法和指標接收者方法的區別 先看乙個例項 package main import fmt type i inte ce type s struct func s s get int func s s set age int func main f...

Go值接收者方法和指標接收者方法

go語言有值型別和指標型別直接呼叫其值接收者方法和指標接收者方法的區別 先看乙個例項 package main import fmt type ifather inte ce type person struct func p person getname string func p person ...

golang中指標接收者和值接收者的區別

一般來說,我們通常會在實施介面的時候,選擇用值接收者,其實指定指標接收者也是允許的。但是當實施介面的時候使用指標接收者與使用值接收者是由細微差別的。通過以下的示例來了解一下 package main import fmt type describer inte ce type person stru...