【协作式原创】查漏补缺之Go的slice基础和几个难点
2024-09-07 00:00:14
Q: 为啥要字节对齐的
https://www.nowcoder.com/discuss/57978
TODO:
Q: go反汇编指令
go tool compile -S plan9Test.go | grep plan9Test.go:6
Q: a[0]:(int32,0,5)(int32,3,5) 3可以append,0不可以append.
Q: 如何证明slice底层函数被修改了
A: 打印slice的第一个元素地址即可,第一个元素地址就是数组地址。
A: 也可以用反射获取slce的运行时结构SliceHeader,可以看到具体的data,len,cap字段值
Q: slice和slice的指针的区别. new返回的是指向slice的指针,不能当成slice使用,必须解指针后成为slice后,才方便使用.
a=*new(int[],0,5) new返回unsafe.Pointer,需要解地址才是切片
Q: TODO 内存对齐,字节对齐: why,how.
Q: 值传递时,值传递到底传递的是啥,如何传递的副本。a变量是地址的别名,传递变量的内存地址值,内存地址值拷贝一个副本。
TODO:
a[1:4] a[8:] 修改还是没修改的原理
growslice函数有多个分支
- 入参 cap的计算
- else 分支 newcap += newcap /4
- 最开始的分支的坑, 为什么是cap扩容为6而不是8。
最新文章
- iOS开发-- 通过runtime kvc 移除导航栏下方的阴影效果线条
- CSS3实现阴阳鱼
- sweetalert api中文开发文档和手册
- flag+文件操作
- POJ3612:Telephone Wire
- 【Cocos2d-x】VS2012开发2dx无法解析的外部符号解决记录(第一篇)【转】
- ASP.NET项目中引用全局dll
- 基于注解的SpringMVC整合JPA
- Ubuntu设置目录的读写权限(Linux命令chmod 777 dirName)
- 【转】NPAPI 插件无法在 Chrome 42 版及更高版本上正常运行
- 基于 自己定义注解 和 aop 实现使用memcache 对数据库的缓存 演示样例
- Codeforces 10D LCIS 找出最长公共子和产量增加这个序列 dp
- 安装mysql的遇到的问题
- 解析js中作用域、闭包——从一道经典的面试题开始
- 使用拷贝的方式(adb push) 绕过Android系统和adb install直接安装APK
- Objective-C 学习 (二):Objective-C 实战之Hello World
- C博客作业06--结构体&;文件
- mysql读写分离——中间件ProxySQL的简介与配置
- Aseprite+Cocos:打包像素画图,导入到cocos里并动起来
- 实体类和json互相转换