关于slice分配内存

本文通过代码示例探讨了Go语言中slice的内存分配和扩展行为。当append操作超出slice的容量时,Go会重新分配内存并创建新的数组;而在容量足够的情况下,仅修改原有数组。同时,文章指出Go语言的强类型特性以及%p操作符对引用类型和取地址操作的不同应用。
摘要由CSDN通过智能技术生成

slice是golang提供的一个很好的符合类型。既支持数据动态扩展,又能随机访问,使数据保持很好的局部性。但是slice有一个性能可能导致数据的一致性和预期不一致,就是它会按需为slice收集内存。参考这段代码:

=========================================

package main


import "fmt"


func main() {
var data = []string{"one", "", "three"}     //what's the differenct to assign underlying or not
var data2 = [...]string{"one", "", "three"} //what's the differenct to assign underlying or not
intTest := 3
fmt.Printf("intTest %%T after append is %T \n", intTest)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值