package mainimport "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 mainimport "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 mainimport "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 結構體型別的值字面量時可以只對它的部分字段賦值,甚...