温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

go语言渐入佳境[15]-struct声明与定义

发布时间:2020-08-10 01:15:28 阅读:158 作者:jonson_jackson 栏目:开发技术
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

结构体的声明

123456
//声明Teacher结构体type Teacher struct {	name string	age  int8	sex  byte}

结构体的定义

方式1

//1、var声明方式实例化结构体,初始化方式为:对象.属性=值

1234
var t1 Teacher t1.name = "jonson" t1.age = 35 t1.sex = 1

方式2

变量简短声明格式实例化结构体,初始化方式为:对象.属性=值

1234
t2 := Teacher{}t2.name = "olaya"t2.age = 30t2.sex = 1

方式3

3、变量简短声明格式实例化结构体,声明时初始化。初始化方式为:属性:值 。属性:值可以同行,也可以换行。(类似map的用法)

123456
t3 := Teacher{  name: "Josh",  age:  28,  sex:  1,}t3 = Teacher{name: "Josh3", age: 27, sex: 1}

方式4

变量简短声明格式实例化结构体,声明时初始化,不写属性名,按属性顺序只写属性值

1
t4 := Teacher{"Ruby", 30, 0}

方式5

创建指针类型的结构体

1234567
t5 := new(Teacher)(*t5).name = "Running"(*t5).age = 31(*t5).sex = 0t5.name = "Running2"t5.age = 31t5.sex = 0

方式6

匿名结构体

123
addr := struct {  province, city string}{"陕西省", "西安市"}

完整代码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
package mainimport "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("-------------------")}

结构体匿名字段

123456789101112131415161718192021222324252627
package mainimport "fmt"type User struct {//name string//sex byte//age int8//height float64//weight float64stringbyteint8float64}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语言渐入佳境[15]-struct声明与定义

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×