go指標接收器和非指標接收器

2021-10-03 13:54:19 字數 796 閱讀 7178

type student struct 

//指標接收器

func

(s *student)

ageadd1()

//非指標接收器

func

(s student)

ageadd2()

指標接收器傳入的是struct本身,非指標接收器傳入的是struct的copy副本

指標接收器可以讀寫struct中的內容,非指標接收器只能讀取struct中的資料但是不能寫入,如果寫入的話也只是寫入到struct的備份中而已。

type student struct 

func

(s *student)

ageadd1()

func

(s student)

ageadd2()

func

(s student)

ageadd3

() student

func main()

/*結果11

2*/

ageadd1和ageadd2分別是指標接收器和非指標接收器接收的函式,二者對age都進行+1操作後輸出的student中的age都是1,由此可見student中的age進行 +1操作只有ageadd1進行的一次,ageadd2對age進行+1操作完全沒影響student。

ageadd3給student副本進行+1操作後返回了student的副本student2,由於ageadd2之前對副本進行過+1操作,所以student2中的age是2。

Go中的指標與函式接收器

go中使用 號表示指標,但是沒有指標算數,不能對其進行加減。同時記憶體管理都由go來負責,不需要拖動釋放記憶體。go中的函式接收者,可以為值型別,也可以是引用型別。看 package main import fmt type rect struct func r rect calarea func ...

廣播接收器

靜態註冊 靜態註冊是指在清單檔案裡面直接寫。動態註冊 動態註冊就是在傳送廣播的activity裡面寫 動態註冊 mybroadcasreceivera mybroadcasreceivera new mybroadcasreceivera intentfilter intentfilter new ...

linux安裝usb wifi接收器

好長時間沒有寫點東西了。最近遇到電腦的無線網絡卡壞了,連不了 想買個 的 接收器來替代,但沒想到這點小問題到過了 天,為防止以後在忘了,留個草稿。如果菜鳥們遇到和我一樣的問題,也可以借鑑一下。我的電腦是 的系統,的系統也都一樣的命令。我買的是 的 接收器。你需要用到的工具有wireless tool...