当前位置: 首页 > news >正文

alipay域名网站软件开发专业知识技能

alipay域名网站,软件开发专业知识技能,cps网站建设,做网站放广告切片是基于数组实现的#xff0c;它的底层是数组#xff0c;可以理解为对 底层数组的抽象。 源码包中src/runtime/slice.go 定义了slice的数据结构#xff1a; type slice struct {array unsafe.Pointerlen intcap int }slice占用24个字节 array: 指向底层数组的指针…切片是基于数组实现的它的底层是数组可以理解为对 底层数组的抽象。 源码包中src/runtime/slice.go 定义了slice的数据结构 type slice struct {array unsafe.Pointerlen intcap int }slice占用24个字节 array: 指向底层数组的指针占用8个字节 len: 切片的长度占用8个字节 cap: 切片的容量cap 总是大于等于 len 的占用8个字节 slice有4种初始化方式 // 初始化方式1直接声明 var slice1 []int// 初始化方式2使用字面量 slice2 : []int{1, 2, 3, 4}// 初始化方式3使用make创建slice slice3 : make([]int, 3, 5) // 初始化方式4: 从切片或数组“截取” slcie4 : arr[1:3]通过一个简单程序看下slice初始化调用的底层函数 package mainimport fmtfunc main() {slice : make([]int, 0)slice append(slice, 1)fmt.Println(slice, len(slice), cap(slice)) }通过 go tool compile -S test.go | grep CALL 得到汇编代码 0x0042 00066 (test.go:6) CALL runtime.makeslice(SB) 0x006d 00109 (test.go:7) CALL runtime.growslice(SB) 0x00a4 00164 (test.go:8) CALL runtime.convTslice(SB) 0x00c0 00192 (test.go:8) CALL runtime.convT64(SB) 0x00d8 00216 (test.go:8) CALL runtime.convT64(SB) 0x0166 00358 ($GOROOT/src/fmt/print.go:274) CALL fmt.Fprintln(SB) 0x0180 00384 (test.go:5) CALL runtime.morestack_noctxt(SB) 0x0079 00121 (autogenerated:1) CALL runtime.efaceeq(SB) 0x00a0 00160 (autogenerated:1) CALL runtime.morestack_noctxt(SB)初始化slice调用的是runtime.makeslicemakeslice函数的工作主要就是计算slice所需内存大小然后调用mallocgc进行内存的分配 所需内存大小 切片中元素大小 * 切片的容量 func makeslice(et *_type, len, cap int) unsafe.Pointer {mem, overflow : math.MulUintptr(et.size, uintptr(cap))if overflow || mem maxAlloc || len 0 || len cap {// NOTE: Produce a len out of range error instead of a// cap out of range error when someone does make([]T, bignumber).// cap out of range is true too, but since the cap is only being// supplied implicitly, saying len is clearer.// See golang.org/issue/4085.mem, overflow : math.MulUintptr(et.size, uintptr(len))if overflow || mem maxAlloc || len 0 {panicmakeslicelen()}panicmakeslicecap()}return mallocgc(mem, et, true) }本文节选于Go合集《Go语言面试题精讲》GOLANG ROADMAP 一个专注Go语言学习、求职的社区。
http://www.zqtcl.cn/news/218291/

相关文章:

  • 黑龙江省城乡和住房建设厅网站首页公司营业执照查询
  • 锦州北京网站建设支付公司网站建设会计分录
  • 泉州做网站优化价格软件公众号开发
  • 商丘旅游网站的建设攀枝花城市建设网站
  • 网站主页设计素材一条龙做网站
  • 咖啡店网站首页怎么做163邮箱注册
  • 网站开发开源程序网站建设及推广销售话术
  • 门户网站和官网的区别美间在线设计平台
  • 淮南制作网站游戏代理哪个平台正规
  • seo网站推广软件 快排手机网页小游戏
  • 上海免费网站建设品牌长沙com建站网站设计
  • 大网站成本品牌设计风格
  • 电大形考任在哪个网站做湖南seo推广服务
  • dede网站 异步生成wordpress 页面新建
  • 郑州网站制作网页网站优化我自己可以做吗
  • 合肥做网站的公司百度做兼职去哪个网站
  • 重庆市城市建设规划官方网站一款app从开发到上线的流程
  • 微网站开发难吗登录qq网页版
  • 网站不备案能解析吗网站开发项目中职责
  • 三优科技 网站开发网站开发实训报告总结
  • 离线推广网站规划书常用的网站都有哪些
  • 成都 视频网站建设网站邮件推送
  • 深圳均安网站制作温州网站优化案例
  • 做网站需要哪些流程网站建设中项目经理的职责
  • 专业低价建设微网站微商城怎么样在wordpress上添加播放视频
  • 网站制作经费预算表域名备案信息查询系统
  • 苏州网站建设找苏州聚尚网络推荐南昌个人网站制作怎么做
  • 普法网站建设wordpress伪静态404错误
  • 易语言如何做浏网站湛江高端网站开发
  • 窦各庄网站建设wordpress 意见反馈