Go面试看这里了~(三)

原文地址:Go面试看这里了~(三)

1、数组和切片的区别?

  1. 切片是指针类型,数组是值类型。

  2. 数组的长度是固定的,切片不是,切片是动态的。

  3. 切片比数组多一个容量【cap】属性。

  4. 切片的底层是数组。

  5. 数组可进行等值比较 ,切片只能进行nil值判断。

  6. 在传递时,数组是值传递,切片是引用传递。

  7. 切片包含指针、长度、容量三个属性。

2、值传递和地址传递(引用传递)如何运用?有何区别?

  1. 值传递将参数值复制一份放进对应函数,两变量地址不同,不可互相修改。

  2. 地址传递(引用传递)将变量本身传入对应函数,可对值内容进行修改。

3、切片扩容?

Go使用append内置函数实现切片扩容,策略如下:

  1. 当所需容量超过原切片容量两倍时,会使用需要的容量作为新容量。

  2. 当原切片长度<1024时,新切片容量会直接翻倍。

  3. 当原切片容量>=1024时,会反复增加25%,直到新容量超过所需容量。

4、defer的执行顺序、作用和特点?

执行顺序:defer的执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值