0
点赞
收藏
分享

微信扫一扫

go 面向对象编程

豆丁趣 2023-03-20 阅读 88

通过结构体可以定义一个组合字面量,有几个细节,也算是规则
规则一:当最后一个字段和结果不在同一行时,, 不可省略。

xm := Profile{
name: "小明",
age: 18,
gender: "male",
}

反之,在同一行,就可以省略。

xm := Profile{
name: "小明",
age: 18,
gender: "male"}

规则二:字段名要全写,要么全不写,不能有的写,有的不写。

例如下面这种写法是会报 mixture of field:value and value initializers 错误的

xm := Profile{
name: "小明",
18,
"male",
}

规则三:初始化结构体,并不一定要所有字段都赋值,未被赋值的字段,会自动赋值为其类型的零值。
2. 绑定方法
在 Go 语言中,我们无法在结构体内定义方法,那如何给一个结构体定义方法呢,答案是可以使用组合函数的方式来定义结构体方法。它和普通函数的定义方式有些不一样,比如下面这个方法

func (person Profile) FmtProfile() {
fmt.Printf("名字:%s\n", person.name)
fmt.Printf("年龄:%d\n", person.age)
fmt.Printf("性别:%s\n", person.gender)
}

其中FmtProfile 是方法名,而(person Profile) :表示将 FmtProfile 方法与 Profile 的实例绑定。我们把 Profile 称为方法的接收者,而 person 表示实例本身,它相当于 Python 中的 self,在方法内可以使用 person.属性名 的方法来访问实例属性。

http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!! 但行好事 莫问前程 --身高体重180的胖子



举报

相关推荐

0 条评论