版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tangyaya8/article/details/86765530
结构体
为什么要出现结构体呢?其实有点类似为什么会有变量,简单来说,结构体将描述单个的组件组合成一个更加让人理解,更加独立的一个类型。
结构体分解到最后,肯定是由某语言的基本数据类型构成,结构体和Java语言中的类有些类似,比如java语言描述一个Person
class Person{
private String name;
private int age;
private int weight;
}
go语言不是强面向对象的语言,那它应该怎么描述一些组成的集合呢?结构体出现了
type person struct{
Name string
Age int
Weight int
}
可以清楚的看到,在Person这个结构体中描述了人的名字,年龄,体重属性,而这些属性都是由基本数据类型构成
go语言中结构体
在上面的例子中我们看到了怎么定义结构体:
type
+结构体名称+struct
{结构体中属性}
怎么初始化和使用结构体呢?
type person struct{
Name string
Age int
Weight int
}
func main(){
//定义一个Person
var person1 = Person{"tangyaya8",22,100}
//定义一个只有姓名的Person,如果只定义某一个或者某几个属性,则需要将属性的名称写出来 FieldName: 值
var person2 = Person{Name:"tangdandan"}
//定义一个不初始化属性的Person
var person3 = Person{}
//结构体的访问使用定义的结构体名称.结构体属性来访问
//访问person1的姓名:
fmt.Println(person1.Name)
//修改person1的Name的Value
person1.Name = "Modify tangbaobao"
}
总结
结构体代表了封装的特性,比如接口参数多的时候应该用复杂类型,或者接口参数后续会发生变化的时候应该用结构体,可以使得接口继续向下兼容