内容简介:1.Golang中的结构体的区别2.结构体的声明3.结构体方法的使用
知识点预览
1.Golang中的结构体的区别
2.结构体的声明
3.结构体方法的使用
4.结构体方法与函数的区别
1.golang中严格意义上是没有oop的思想,只是通过结构体的方式来实现了面向对象 2.golang中没有类,通过结构体可以实现同等的地位 3.golang中去除了传统的oop语法,继承,重载,构造,析构,隐藏this的特性 4.golang仍然有面向对象三大特性,只是实现和面向对象方法有所不同,没有extends关键字 5.golang中的结构体是非常灵活的,耦合度低
//结构体声明与定义 type 结构体名 struct { 结构体属性1 type 结构体属性2 type 结构体属性3 type } //定义方式1: var 变量名 结构体名 //把一个变量的类型声明成之前定义的结构体 变量名.字段1 //赋值 变量名.字段2 // //定义方式2声明和定义同时进行 var 变量名 结构体 = 结构体{} //定义同时赋值 //定义方式3 var 变量名 *结构体= new(结构体) //返回的是一个指针 (*变量名).字段1 = 值1 //赋值方式1 变量名.字段1 = 值1 //底层自动加上了*在这个赋值的过程中 //定义方式4 var 变量名 *结构体= &结构体{} //返回的是一个指针 (*变量名).字段1 = 值1 //赋值方式1 变量名.字段1 = 值1 //底层自动加上了*在这个赋值的过程中 //结构体的传值方式是值传递,结构体属性可以是:基本数据类型,数组,map,切片等
//定义一个结构体 type Person struct { Name string } //定义一个结构体方法 func (p Person) test() { //其中p可以随便相当于形式参数 fmt.Println(p.Name) } func main() { var p1 Person p1.Name = "张三" p1.test() } 细节:在结构体中指针形式(*a1).xx() 等价 a1.xx();(&a1).name 等价 a1.name 因为结构体底层自动转化了
//函数 func 函数名(形参 type){ 函数体 } 函数名() //调用时候形参定义了什么类型传递时候也是对应类型,否则无效 //结构体方法 func(形参 结构体) 方法名(形参){ } &变量.方法 //这里比较容易混淆的,结构体方法以方法中的类型即(形参)为主 如果不是指针则不会改变,是 go 语言底层自动转换导致的
以上所述就是小编给大家介绍的《Golang的结构体》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 详解Oracle实例内存结构和进程结构
- 数据结构 – 用于构建文件系统的数据结构?
- Oracle 体系结构 - 逻辑和物理存储结构之间的关系
- Go语言中结构体的使用-第1部分结构体
- 数据结构和算法面试题系列-C指针、数组和结构体
- c# – .NET中用户创建的结构和框架结构之间的差异
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Don't Make Me Think
Steve Krug / New Riders Press / 18 August, 2005 / $35.00
Five years and more than 100,000 copies after it was first published, it's hard to imagine anyone working in Web design who hasn't read Steve Krug's "instant classic" on Web usability, but people are ......一起来看看 《Don't Make Me Think》 这本书的介绍吧!