内容简介: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中用户创建的结构和框架结构之间的差异
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高质量程序设计艺术
斯皮内利斯 / 韩东海 / 人民邮电出版社 / 2008-1 / 55.00元
在本书中,作者回归技术层面。从Apache web server、BSD版本的Unix system、ArgoUMl、ACE网络编程库等著名开源软件中选取了大量真实C、C++和java语言源代码,直观而深刻的阐述了代码中可能存在的各种质量问题,涉及可靠性、安全性、时间性和空间性、可移植性、可维护性以及浮点运算等方面,很多内容都市独辟蹊径,发前人所未发。正因如此,本书继作者的《代码阅读》之后在获Jo......一起来看看 《高质量程序设计艺术》 这本书的介绍吧!