go语言渐入佳境[15]-struct声明与定义
2018-12-05 19:45
726 查看
结构体的声明
1 2 3 4 5 6 | //声明Teacher结构体 type Teacher struct { name string age int8 sex byte } |
结构体的定义
方式1
//1、var声明方式实例化结构体,初始化方式为:对象.属性=值
1 2 3 4 | var t1 Teacher t1.name = "jonson" t1.age = 35 t1.sex = 1 |
方式2
变量简短声明格式实例化结构体,初始化方式为:对象.属性=值
1 2 3 4 | t2 := Teacher{} t2.name = "olaya" t2.age = 30 t2.sex = 1 |
方式3
3、变量简短声明格式实例化结构体,声明时初始化。初始化方式为:属性:值 。属性:值可以同行,也可以换行。(类似map的用法)
1 2 3 4 5 6 | t3 := Teacher{ name: "Josh", age: 28, sex: 1, } t3 = Teacher{name: "Josh2", age: 27, sex: 1} |
方式4
变量简短声明格式实例化结构体,声明时初始化,不写属性名,按属性顺序只写属性值
1 | t4 := Teacher{"Ruby", 30, 0} |
方式5
创建指针类型的结构体
1 2 3 4 5 67 | t5 := new(Teacher) |
方式6
匿名结构体
12 | addr := struct { province, city string }{"陕西省", "西安市"} |
完整代码
1 2 3 4 5 67 | package main |
结构体匿名字段
1 2 3 4 5 67 | package main import "fmt" type User struct { //name string //sex byte //age int8 //height float64 //weight float64 string byte int8 float64 } func main() { // 实例化结构体 user:= User{"jonson" , 'm' , 35 , 177.5} fmt.Println(user) //如果想依次输出姓名、年龄、身高、性别 fmt.Printf("姓名:%s \n" , user.string) fmt.Printf("身高:%.2f \n" , user.float64) fmt.Printf("性别:%c \n" , user.byte) fmt.Printf("年龄:%d \n" , user.int8) } |
本文链接: https://dreamerjonson.com/2018/11/26/golang-15-struct/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!
相关文章推荐
- Go语言学习笔记 --- 常量、变量、批量定义与声明、数据类型、类型别名、类型转换
- [Go] --- 变量的声明和定义
- go语言快速入门:模板应用(15)
- C/C++语言语言中的声明和定义浅解
- Go语言字典树定义及实现
- C语言中函数的声明、定义及使用的入门教程
- Spoofax语言工作台学习笔记——命名的定义和声明
- struct多种声明定义写法的小结
- go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用
- Go语言中接口的定义与实现
- 【Go语言】【15】GO语言的面向对象
- go语言中结构struct
- 关于C/C++中 Class, Struct, enum的定义声明位置
- Go语言笔记:struct结构遍历
- Go语言实战_自己定义OrderedMap
- Go语言核心之美 3.4-Struct结构体
- GO语言使用orm时,struct作为json输出,指定key的字符串
- go语言之行--结构体(struct)详解、链表
- Go语言学习教程之声明语法(译)
- GO语言练习:struct基础练习