【Go】Go语言学习笔记-4-进阶

发布时间:2020-01-10 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了【Go】Go语言学习笔记-4-进阶大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Go有指针,然后却没有指针运算,目标是修改一个传入函数的参数的值得效率和可能性,因此它们更像是引用而不是C的指针。

1.内存分配

Go有两个内存分配原语,make和new。

new分配内存

new(T)分配了零值填充的T类型的内存空间,并且返回其地址,一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。

make分配内存

make(T,args)只能创建slice,map和channel,并且返回一个有初始值(非零)的T类型,而不是*T。

例如

  • make([]int,10,100)分配了100个整数的值,然后用长度10和容量100创建了slice结构指向数组的前10个元素。

  • new([]int)返回指向新分配的内存的指针,而零值填充的slice结构指向nil的slice值。

构造函数与复合声明

有时候零值不能满足需求,必须要有一个用于初始化的构造函数,可以通过复合声明实现。
从复合声明中获取地址,意味着告诉编译器在堆中分配空间,而不是栈中。

2. 定义自己的类型

Go允许定义新德类型,通过关键字type实现,例如type foo int。
创建更复杂的类型需要用到struct关键字。

转换

type类型的转换。

组合

文档里竟然没写完。

大佬总结

以上是大佬教程为你收集整理的【Go】Go语言学习笔记-4-进阶全部内容,希望文章能够帮你解决【Go】Go语言学习笔记-4-进阶所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。