tft每日頭條

 > 圖文

 > go語言指針的實際用途

go語言指針的實際用途

圖文 更新时间:2024-07-26 21:13:01

go語言指針的實際用途(實例解析go語言method指針receiver的用處)1

實例解析go語言method指針receiver的用處,及非指針的區别

method指針receiver的用處

go語言中method使用指針作為receiver接受體的用處與使用費指針的區别主要在于如下兩個方面:

  1. 傳遞指針更高效:非指針作為receiver,就像形參一樣,傳遞的是一個類型(結構體)的copy,但這個結構體的字段、方法、屬性非常多,也就是體量較大,這樣copy就不劃算了,比較耗時耗内存,而使用指針傳遞的是結構體的地址引用,非常輕量級;
  2. 更改值:指針作為receiver可以達到修改字段值的作用,而非指針則不能。
指針receiver語法

func ( r *ReceiverType ) func ( args list ) ( results list )

method指針receiver實例

package main import "fmt" type Rows struct { Lan string } func (r Rows) x1() { r.Lan = "不可以修改" fmt.Println(r.Lan) } func (r *Rows) y1() { r.Lan = "可以修改" fmt.Println(r.Lan) } func main() { var r Rows r.Lan = "這是玫瑰!" r.x1() fmt.Println(r.Lan) r.y1() fmt.Println(r.Lan) } 代碼輸出: 不可以修改 這是玫瑰! 可以修改 可以修改

代碼解析:

如上代碼,x1的接受體receiver為普通Rows結構體,y1則為Rows結構體的指針,然後分别調用x1和y1,再分别打印r.Lan字段的值,通過輸出,證明了指針接受體receiver的字段值被修改了,而非指針的則保持不變。

更多go語言語法教程及實例,可以參考如下内容:

go語言method方法指針作為receiver的用處,及與非指針的區别 - 大器編程

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved