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

网站制作制作网站建网站食品行业网站开发

网站制作制作网站建网站,食品行业网站开发,苏州网站,hotnews wordpress理解 Go 语言中 slice 的性质对于编程非常有益。下面#xff0c;我将通过两个代码示例来解释切片在不同函数之间传递并执行 append 操作时的具体表现。 本篇为第 1 篇#xff0c;当切片的容量 cap 充足时 第一份代码 slice1 的初始长度为 3#xff0c;容量为 10 func main()…理解 Go 语言中 slice 的性质对于编程非常有益。下面我将通过两个代码示例来解释切片在不同函数之间传递并执行 append 操作时的具体表现。 本篇为第 1 篇当切片的容量 cap 充足时 第一份代码 slice1 的初始长度为 3容量为 10 func main() {slice1 : make([]int, 3, 10)fmt.Println(slice 1, slice1, len(slice1), cap(slice1))test1(slice1)fmt.Println(slice 1, slice1, len(slice1), cap(slice1))// 此时若访问 slice1[3] 则 panic因为 len 3不可越界 len// fmt.Println( slice[3] ) }func test1(slice2 []int) {// slice 2 对切片进行 append 操作slice2 append(slice2, 1)fmt.Println(slice 2, slice2, len(slice2), cap(slice2)) }输出 slice 1 [0 0 0] 3 10 slice 2 [0 0 0 1] 4 10 slice 1 [0 0 0] 3 10我们可以观察到在 main 函数中slice2 对切片的改动并没有体现在 slice1 上尽管它们明显操作的是同一底层数组。为什么会这样呢 原来在上述第一份代码中slice2 append(slice2, 1) 这一行操作是在函数 test1 内部执行的所以它不会改变调用该函数的 main 函数中的 slice1 的长度 len 3只会改变 test1 函数内部的 slice2 长度 len 4。因此在 main 函数中由于 slice1 的长度仍然是 3我们自然无法“看到”第 4 个元素。 那么如果在 main 函数中继续对 slice1 执行 append 操作会发生什么呢答案是它会直接覆盖掉 test1 函数中对第 4 个元素的赋值具体的情况如下图所示 第二份代码 有了上面的解释后我们可以自然而然的写出下面代码验证上述逻辑 // 以下注释为执行时机按顺序为 1 2 3 func main() {slice1 : make([]int, 3, 10)fmt.Println(slice 1, slice1, len(slice1), cap(slice1))go test1(slice1)time.Sleep(1 * time.Second)slice1 append(slice1, 2) // 2fmt.Println(slice 1, slice1, len(slice1), cap(slice1)) // 2time.Sleep(4 * time.Second) }func test1(slice2 []int) {slice2 append(slice2, 1) // 1time.Sleep(2 * time.Second)fmt.Println(slice 2, slice2, len(slice2), cap(slice2)) // 3 }输出 slice 1 [0 0 0] 3 10 slice 1 [0 0 0 2] 4 10 slice 2 [0 0 0 2] 4 10结论 当我们在函数 A 中将 slice1 传递给函数 B 并在 B 中执行 append 操作时只要底层数组没有扩张就会在原数组的基础上进行追加此时 B 函数中的 len 为 4。虽然 A 和 B 函数共享一个底层数组但由于 A 函数的 len 保持为 3因此我们不能访问数组的第 4 位元素否则会引发 panic。当我们在 A 函数中也执行 append 操作时A 函数会直接覆盖底层数组的第 4 位数值从而直接覆盖了 B 函数所赋的值。
http://www.hkea.cn/news/14465445/

相关文章:

  • 做简单最网站的软件是广州公司注册费用及流程
  • 资海网络一年做多少网站电子商务网站服务器
  • delphi 2010 网站开发一个简单的个人网站
  • 国家有规定必须做可信网站验证seo投放
  • 一个刚有官网的公司怎么做网站运营传媒公司起名字大全免费
  • 网站开发信息平台项目总结免费商品列表网页模板源代码
  • 南昌网站优化网站开发中企动力官网登录
  • 服装网都有哪些网站wordpress插件没有设置
  • 网站开发进度管理表全自动网站制作系统
  • 国际网站模板网站建设狼雨
  • 网站开发选择框代码分销工具
  • 台州建设工程网站网站域名费
  • 杭州设计 公司 网站建设专业的深圳网站建设公司排名
  • 集团公司做网站wordpress 本地打开很慢
  • 邢台网站建设基本流程怎么做网站加盟
  • 备案ip 查询网站查询网站在线网页制作工具
  • 上传下载网站模板个人网页html模板
  • 软件综合课设做网站青岛海西建设集团官方网站
  • 榆次建设局网站网站制作案例价格
  • 郴州网站制作公司地址网站网络推广优化哪家好
  • 网站建设 小程序开发网站推广策划评估指标有哪些
  • 漳州建设银行网站首页摄影比赛投稿网站
  • 58网站怎么做浏览度才高做电商网站需要会些什么
  • 电子商务在酒店管理网站建设区块链插件wordpress
  • 德州网站优化公司网络营销的特点和作用
  • 广东工程承包网站企业网址怎么做
  • dz如何做门户网站浏览器打不开二级网页
  • 沧州网站建设沧州免费域名申请入口
  • 网站描述怎么写比较好wordpress双语插件
  • 事业单位报名网站长春建设信息网站