在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
package main import "fmt" type Person struct { name string age int } func (v *Person) modifyName(name string) { p := v p.name = name } func main() { xiaoMing := Person{name: "xiaoming", age: 20} xiaoMing.modifyName("小李") fmt.Println(xiaoMing.name) } 输出结果如下: C:\Users\Ethan\Desktop\GOStudy\test>go run test.go 将上面代码的改成接受结构体的修改名称方法 package main import "fmt" type Person struct { name string age int } func (v Person) modifyName(name string) { p := v p.name = name } func main() { xiaoMing := Person{name: "xiaoming", age: 20} xiaoMing.modifyName("小李") fmt.Println(xiaoMing.name) } 输出结果如下: C:\Users\Ethan\Desktop\GOStudy\test>go run test.go
结论: 接受为结构体指针的方法对原先定义的结构体能够改变名称 接受为结构体的方法改变不了原先的结构体的值,需要重新定义个变量来传递新的值 下面修改的代码可以实现同样的效果: package main 输出结果: C:\Users\Ethan\Desktop\GOStudy\test>go run test.go
总结: 效率高的话还是使用结构体指针,直接修改 |
请发表评论