實例解析go語言method指針receiver的用處,及非指針的區别
method指針receiver的用處go語言中method使用指針作為receiver接受體的用處與使用費指針的區别主要在于如下兩個方面:
func ( r *ReceiverType ) func ( args list ) ( results list )
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每日頭條,我们将持续为您更新最新资讯!