go实现类操作
温馨提示:
本文最后更新于 2022年01月15日,已超过 1,130 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
众所周知,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函数,会在引入文件后自动执行,而不是根据实例化结构体执行的:
正文到此结束
- 本文标签: 编程语言
- 本文链接: https://www.php20.cn/article/320
- 版权声明: 本文由仙士可原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权