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

关于建筑的网站有哪些内容wordpress 表格插件

关于建筑的网站有哪些内容,wordpress 表格插件,南阳+网站建设,有什么网站可以做投票理解 Go 语言中 slice 的性质对于编程非常有益。下面,我将通过两个代码示例来解释切片在不同函数之间传递并执行 append 操作时的具体表现。 本篇为第 1 篇,当切片的容量 cap 充足时 第一份代码 slice1 的初始长度为 3,容量为 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 个元素的赋值!具体的情况如下图所示:

切片append_流程图

第二份代码

有了上面的解释后,我们可以自然而然的写出下面代码验证上述逻辑:

// 以下注释为执行时机,按顺序为 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.yayakq.cn/news/186915/

相关文章:

  • 六安网站怎么做seo河南省建设工程信息网站
  • 启动网站集约化建设房屋平面设计软件手机版
  • asp 网站后台天津网站制作哪家好薇
  • 学校建网站中国医院建设协会网站首页
  • 个人备案的网站可以做什么电力建设规范下载网站
  • 网站建设亼仐团hreflang wordpress
  • 网站软文伪原创网站建设的战略作用
  • 徐州英文网站seo如何韩国视频网站模板下载 迅雷下载
  • 网站创意策划方案手机网站大全网址大全
  • 北京市朝阳区住房建设网站交互式网站设计 深圳
  • 南通企业网站制作wordpress无法目录下
  • 广州广告网站建设上海建材网站
  • 电子商城网站的设计与实现wordpress手机适配模板
  • 用jsp做的网站的代码网站建设个人接单
  • 广州网站设计公司济南兴田德润o评价百度制作企业网站多少钱
  • 钟祥建设局网站人社局劳务网站建设汇报
  • 政协网站建设意义网站建立需要什么
  • 做外贸推广哪个网站好学校网站建设开发
  • php网站开发中如何免费网络推广方法
  • 个人网站怎么做推广网站域名等级
  • 做外贸密封件的网站昆明展示型网站开发
  • 做网站排版增城微网站建设
  • 自己上传图片做动漫图网站想卖产品怎么推广宣传
  • 黑龙江省建设厅官方网站wordpress主题 瀑布流
  • 自己搭建网站的步骤dw用层还是表格做网站快
  • 网站建设分金手指排名一国内免费saas crm正在
  • 网站建设安全方案网站开发应走什么科目
  • 微信公众号关联网站google seo wordpress
  • wordpress全站音频做网站除了买域名还有什么
  • 做网站编写海门网站建设