您的位置 首页 golang

go语言学习结构体(二)

go

构造函数

Go语言的 结构体 没有构造函数,我们可以自己实现。 例如,下方的代码就实现了一个person的构造函数。 因为 struct 是值类型,如果结构体比较复杂的话,值拷贝性能开销会比较大,所以该构造函数返回的是结构体指针类型

构造函数

当结构体比较大的时候尽量使用结构体指针,减少程序的内存开销,

  • 构造函数new开头

方法和接收者

Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者 self。

方法的定义格式如下:

其中,

  • 接收者变量:接收者中的参数变量名在命名时,官方建议使用接收者类型名的第一个小写字母,而不是self、this之类的命名。例如,Person类型的接收者变量应该命名为 p,Connector类型的接收者变量应该命名为c等。
  • 接收者类型:接收者类型和参数类似,可以是指针类型和非指针类型。
  • 方法名、参数列表、返回参数:具体格式与函数定义相同。

方法和接受者

指针类型的接受者/值接受者

指针类型和接受者

什么时候应该使用指针类型接收者

1.需要修改接收者中的值

2.接收者是拷贝代价比较大的大对象

3.保证一致性,如果有某个方法使用了指针接收者,那么其他的方法也应该使用指针接收者。

给任意类型添加方法

结构体匿名字段

结构体允许其成员字段在声明时没有字段名而只有类型,这种没有名字的字段就称为匿名字段。

匿名字段默认采用类型名作为字段名,结构体要求字段名称必须唯一,因此一个结构体中同种类型的匿名字段只能有一个。

嵌套结构体

嵌套匿名结构体

文章来源:智云一二三科技

文章标题:go语言学习结构体(二)

文章地址:https://www.zhihuclub.com/101506.shtml

关于作者: 智云科技

热门文章

网站地图