代码拉取完成,页面将自动刷新
package main
import "fmt"
type User struct {
Name string
Email string
}
//值作为接收者,可以访问对象成员
func (u User) printName1() {
fmt.Println(u.Name)
}
//指针作为接收者,也可以访问对象成员
func (u *User) printName2() {
fmt.Println(u.Name)
}
//值作为接收者, 无法修改对象成员
func (u User) changeName1(name string) {
u.Name = name
}
//指针作为接收者,可以修改对象成员
func (u *User) changeName2(name string) {
u.Name = name
}
func main() {
var u1 User
u1.Name = "张三"
u1.Email = "demo@163.com"
//值接收者和指针接收者的方法都可以访问对象成员
u1.printName1() //张三
u1.printName2() //张三
//值为接收者的方法无法修改对象成员、指针接收者可以
u1.changeName1("李四")
fmt.Printf("%#v\n", u1) //main.User{Name:"张三", Email:"demo@163.com"}
u1.changeName2("李四")
fmt.Printf("%#v\n", u1) //main.User{Name:"李四", Email:"demo@163.com"}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。