GoLang(5)结构体

版权声明:本文为博主原创文章,未经博主允许不得转载。 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"	
}

总结

结构体代表了封装的特性,比如接口参数多的时候应该用复杂类型,或者接口参数后续会发生变化的时候应该用结构体,可以使得接口继续向下兼容

猜你喜欢

转载自blog.csdn.net/tangyaya8/article/details/86765530