go实现类操作
【摘要】 众所周知,go是没有类这个概念的,但是有函数方法这个概念,可以通过函数方法,指定方法为某个结构体专用,例如:user.gopackage mainimport "errors"type user struct { userId int userName string password string}func (receiver user) GetName() string { ...
众所周知,go是没有类这个概念的,但是有函数方法这个概念,可以通过函数方法,指定方法为某个结构体专用,例如:
user.go
package main
import "errors"
type user struct {
userId int
userName string
password string
}
func (receiver user) GetName() string {
return receiver.userName
}
func (receiver *user) UpdateName(name string)(string,error) {
//更新用户名称
receiver.userName = name
if false {
return "", errors.New("更新失败")
}
return receiver.userName,nil
}
复制
main.go:
package main
import "fmt"
func main() {
userInfo :=user{1,"仙士可","123456"}
userInfo.UpdateName("仙士可1号")
fmt.Println(userInfo.userName)
}
复制
即可实现类方法操作
但是需要注意:
在UpdateName方法中,接收者需要定义为值引用,定义为指针才可以更改结构体的变量数据:
同时,在文件里面的init函数,会在引入文件后自动执行,而不是根据实例化结构体执行的:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)