go 結構體指標方法與結構體方法的區別

2022-03-10 12:18:22 字數 1130 閱讀 6375

package main

import "fmt"

type person struct

func (v *person) modifyname(name string)

func main()

xiaoming.modifyname("小李")

fmt.println(xiaoming.name)

}

輸出結果如下:

c:\users\ethan\desktop\gostudy\test>go run test.go

小李將上面**的改成接受結構體的修改名稱方法

package main

import "fmt"

type person struct

func (v person) modifyname(name string)

func main()

xiaoming.modifyname("小李")

fmt.println(xiaoming.name)

}

輸出結果如下:

c:\users\ethan\desktop\gostudy\test>go run test.go

xiaoming

結論:接受為結構體指標的方法對原先定義的結構體能夠改變名稱

接受為結構體的方法改變不了原先的結構體的值,需要重新定義個變數來傳遞新的值

下面修改的**可以實現同樣的效果:

package main

import "fmt"

type person struct

func (v person) modifyname(name string) person

func main()

p:=xiaoming.modifyname("小李")

fmt.println(p.name)

}

輸出結果:

c:\users\ethan\desktop\gostudy\test>go run test.go

小李總結:

效率高的話還是使用結構體指標,直接修改

Go 結構體,結構體指標和方法

結構體 講乙個或多個變數組合到一起形成新的型別,這個型別就是結構體,結構體是值型別 定義結構體和賦值 learn go main.go package main import fmt type people struct func main fmt.printf p peo 0x110040f0 賦...

go 修改結構體方法 go結構體方法

golang中的方法是作用在特定型別的變數上,因此自定義型別,都可以有方法,而不僅僅是struct。定義格式 func var struct name funcname var0,var1.return type package main import fmt type test struct na...

go 結構體和方法

結構體型別的字面量由關鍵字type 型別名稱 關鍵字struct,以及由花括號包裹的若干字段宣告組成。type person struct person 鍵值對的順序與其型別中的字段宣告完全相同的話,我們還可以統一省略掉所有欄位的名稱 person 結構體型別的值字面量時可以只對它的部分字段賦值,甚...