本文共 1755 字,大约阅读时间需要 5 分钟。
在阅读本文章前,假定你具备如下能力:
⏩ 已掌握Go语言的数据类型
⏩ 已掌握流程控制
我们之前的流程控制,基本是在函数中处理,如下所示:
package mainimport "fmt"/**for 循环演示案例 */func main(){ NumberAndSum()}// 打印1~100之间所有是7的倍数的整数的个数及总和func NumberAndSum(){ var sum uint64 = 0 var count uint64 = 0 var max uint64 = 100 var i uint64 = 1 for ;i<=max;i++{ if i%7 == 0{ count ++ sum += i } } fmt.Printf("count=%v sum=%v",count,sum)}
从上面的代码我们可以看到,基本是一些散列的数据在进行计算。这里为什么说是一些散列的,因为这些数据都没有归属,只为了完成一些计算而存在。可是,当我们需要重复利用这些数据或者归并这些数据的时候,就显得无从下手。那么有没有可能将这些散列的数据归并到一起,多次使用或者合理使用呢?答案是肯定的,在程序世界里,比如Java,就有面向对象的思想,那么在go语言中也同样存在该内容。
概念:结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。
结构体定义需要使用type和struct语句。struct语句定义一个新的数据类型,结构体中有一个或多个成员。type语句设定了结构体的名称。结构体的格式如下:
一旦定义了结构体类型,它就能用于变量的声明,语法格式如下:
member definition
定义一个结构体,命名为"Person",包含成员变量:年龄、姓名
package mainimport "fmt"func main(){ fmt.Println(Person{18,"KangKang"})}// 编写结构体“Person”,并定义成员变量Age、Nametype Person01 struct { Age int Name string}
当我们编写一个结构体,其目的是整合不同数据不同类型的集合供外部调用。那么我们要如何访问结构体成员呢?
如果要访问结构体成员,需要使用点号 "."操作符,格式为:
结构体.成员名
结合上面代码,对姓名和年龄进行访问
package mainimport "fmt"func main(){ person:=Person{18,"KangKang"} fmt.Println("年龄为:",person.Age) fmt.Println("姓名为:",person.Name)}// 编写结构体“Person”type Person struct { Age int Name string}
⏩ 如果结构体的所有成员变量都可以比较,那么这个结构体就是可比较的
⏩ 两个结构体的比较可以使用==或者!=。其中 == 操作符按照顺序比较两个结构体变量的成员变量
package mainimport "fmt"func main(){ p:=Person01{18,"KangKang"} p1:=Person01{22,"LiSa"} fmt.Println("Age:",p.Age == p1.Age) // ====> Flae fmt.Println("Name:",p.Name == p1.Name) // ====> Flae fmt.Println("P:",p == p1) // ====> Flae}// 编写结构体“Person01”type Person01 struct { Age int Name string}// 编写结构体“Person01”type Person03 struct { Age int Name string}
注:修改代码无显示的问题
转载地址:http://kxiox.baihongyu.com/