结构体的声明
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: "Josh3", age: 27, sex: 1}
|
方式4
变量简短声明格式实例化结构体,声明时初始化,不写属性名,按属性顺序只写属性值
1
| t4 := Teacher{"Ruby", 30, 0}
|
方式5
创建指针类型的结构体
1 2 3 4 5 6 7
| t5 := new(Teacher) (*t5).name = "Running" (*t5).age = 31 (*t5).sex = 0 t5.name = "Running2" t5.age = 31 t5.sex = 0
|
方式6
匿名结构体
1 2 3
| addr := struct { province, city string }{"陕西省", "西安市"}
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| package main
import "fmt"
//定义Teacher结构体 type Teacher struct { name string age int8 sex byte }
func main() { //1、var声明方式实例化结构体,初始化方式为:对象.属性=值 var t1 Teacher fmt.Println(t1) fmt.Printf("t1:%T , %v , %q \n", t1, t1, t1) //if t1 == nil { // fmt.Println() //} t1.name = "Steven" t1.age = 35 t1.sex = 1 fmt.Println(t1) fmt.Println("-------------------")
//2、变量简短声明格式实例化结构体,初始化方式为:对象.属性=值 t2 := Teacher{} t2.name = "David" t2.age = 30 t2.sex = 1 fmt.Println(t2) fmt.Println("-------------------")
//3、变量简短声明格式实例化结构体,声明时初始化。初始化方式为:属性:值 。属性:值可以同行,也可以换行。(类似map的用法) t3 := Teacher{ name: "Josh", age: 28, sex: 1, } t3 = Teacher{name: "Josh3", age: 27, sex: 1} fmt.Println(t3) fmt.Println("-------------------")
//4、变量简短声明格式实例化结构体,声明时初始化,不写属性名,按属性顺序只写属性值 t4 := Teacher{"Ruby", 30, 0} fmt.Println(t4) fmt.Println("-------------------")
//5、创建指针类型的结构体 t5 := new(Teacher) fmt.Printf("t5:%T , %v , %p \n", t5, t5, t5) //(*t5).name = "Running" //(*t5).age = 31 //(*t5).sex = 0
//语法简写形式——语法糖 t5.name = "Running2" t5.age = 31 t5.sex = 0 fmt.Println(t5) fmt.Println("-------------------") }
|
结构体匿名字段
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| 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) }
|
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
文章名称:go语言渐入佳境[15]-struct声明与定义-创新互联
文章起源:
http://www.cdkjz.cn/article/dpggdh.html