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

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【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:384754419,请注明来意。