GO语言结构体
2017-06-04 11:36
369 查看
Go语言的struct和C语言的很相似
简单的struct定义
或者
关于struct的操作
关于结构体做参数
不用指针就是值传递,加上指针就可以改变源地址,注意用了指针但是依旧用.进行调用
可以直接取a为结构体地址,而且这样的a还兼容普通的类型操作,所以是常用情况
匿名结构
嵌套结构体
匿名字段
注意匿名字段赋值的时候一定要按照声明次序
结构体的组合(Go语言没有继承)
嵌入
简单的struct定义
package main import "fmt" type test struct{ Name string Age int } func main(){ a:=test{"yc",22} fmt.Println(a) }
或者
package main import "fmt" type test struct{ Name string Age int } func main(){ a:=test{ Name:"john", Age: 19, } fmt.Println(a) }
关于struct的操作
package main import "fmt" type test struct{ Name string Age int } func main(){ a:=test{} fmt.Println(a) a.Name="yc" a.Age =22 fmt.Println(a) }
关于结构体做参数
不用指针就是值传递,加上指针就可以改变源地址,注意用了指针但是依旧用.进行调用
package main import "fmt" type test struct{ Name string Age int } func A(t* test){ t.Age = 15 } func main(){ a:=&test{ Name:"john", Age: 19, }//get the address directely,a is ptr A(a) fmt.Println(a) a.Age=20 fmt.Println(a) }
可以直接取a为结构体地址,而且这样的a还兼容普通的类型操作,所以是常用情况
匿名结构
package main import "fmt" func main(){ a:=struct{ Name string Age int }{ Name:"joe", Age:19, } fmt.Println(a) }
嵌套结构体
package main import "fmt" type person struct{ Name string Age int Contact struct{ Phone,City string } } func main(){ a:=person{ Name:"joe", Age:19, } a.Contact.Phone="123456" a.Contact.City="nih" fmt.Println(a) }
匿名字段
package main import "fmt" type person struct{ string int } func main(){ a:=person{ "joe", 19, } fmt.Println(a) }
注意匿名字段赋值的时候一定要按照声明次序
结构体的组合(Go语言没有继承)
嵌入
package main import "fmt" type human struct{ Sex int } type teacher struct{ human Name string Age int } type student struct{ human Name string Age int } func main(){ a:=student{Name:"joe",Age:19,human:human{Sex:0}}; b:=teacher{Name:"joe",Age:20,human:human{Sex:0}}; fmt.Println(a,b) a.Sex=1 fmt.Println(a,b) }
相关文章推荐
- 李艺:Go语言之内的结构体模拟继承
- Go语言中通过结构体匿名字段实现方法的继承和重载
- Go语言里的结构体文法实例分析
- Go语言结构体
- go语言中空结构体的使用
- go语言结构体
- Go语言中面向对象-结构体和方法
- Go语言中结构体的使用-第1部分结构体
- GO语言结构体方法跟结构体指针方法的区别
- go语言之行--结构体(struct)详解、链表
- go语言有关结构体的问题
- Go语言结构体与二进制数组转换
- go语言初始化内部结构体3中方式
- Go语言,struct结构体的那些奇怪的用法
- Go语言中结构体的使用-第2部分OOP
- go语言结构体定义使用
- Go语言结构体与二进制数组转换
- GO语言为结构体排序
- Go语言结构体定义和使用方法
- 【Go语言】【12】GO语言的结构体 推荐