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

前端之家收集整理的这篇文章主要介绍了【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。

例如

    @H_301_17@

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

    @H_301_17@

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

构造函数与复合声明

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

2. 定义自己的类型

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

转换

type类型的转换。

组合

文档里竟然没写完。

原文链接:https://www.f2er.com/go/190219.html

猜你在找的Go相关文章