123456 | //声明Teacher结构体type Teacher struct { name string age int8 sex byte} |
//1、var声明方式实例化结构体,初始化方式为:对象.属性=值
1234 | var t1 Teacher t1.name = "jonson" t1.age = 35 t1.sex = 1 |
变量简短声明格式实例化结构体,初始化方式为:对象.属性=值
1234 | t2 := Teacher{}t2.name = "olaya"t2.age = 30t2.sex = 1 |
3、变量简短声明格式实例化结构体,声明时初始化。初始化方式为:属性:值 。属性:值可以同行,也可以换行。(类似map的用法)
123456 | t3 := Teacher{ name: "Josh", age: 28, sex: 1,}t3 = Teacher{name: "Josh3", age: 27, sex: 1} |
变量简短声明格式实例化结构体,声明时初始化,不写属性名,按属性顺序只写属性值
1 | t4 := Teacher{"Ruby", 30, 0} |
创建指针类型的结构体
1234567 | t5 := new(Teacher)(*t5).name = "Running"(*t5).age = 31(*t5).sex = 0t5.name = "Running2"t5.age = 31t5.sex = 0 |
匿名结构体
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协议 许可协议。转载请注明出处!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。