首页 > 其他 > 详细

golang slice底层示例代码

时间:2020-09-07 00:07:58      阅读:576      评论:0      收藏:0      [点我收藏+]
package main

import (
	"log"
)

// 说明slice底层是数组的引用的示例代码
// slice的底层是数组的一个引用
// slide[:]的方式并非重新开辟新的内存地址
func main() {
	arr := [5]int{1, 2, 3, 4, 5} // 定义一个长度是5的数组
	slice := arr[:]              // 数组转换为slice
	slice2 := arr[:]             // 再复制一个slice
	slice3 := arr[1:]            // 再复制一个slice,这个从第二个元素开始

	log.Printf("arr[1] = %p, slice[1] = %p, slice2[1] = %p, slice3[1] = %p", &arr[1], &slice[1], &slice2[1], &slice3[1]) // 地址全部一致,说明元素[1]都指向同一个内存地址
	slice2[1] = 100                                                                                                      // 修改slice2的第二个元素的值
	log.Printf("arr[1] = %p, slice[1] = %p, slice2[1] = %p, slice3[1] = %p", &arr[1], &slice[1], &slice2[1], &slice3[1]) // 地址没有任何改变
	log.Printf("arr[1] = %v, slice[1] = %v, slice2[1] = %v, slice3[0] = %v", arr[1], slice[1], slice2[1], slice3[0])     // 看看值是否一起变化
}

  

golang slice底层示例代码

原文:https://www.cnblogs.com/eecjimmy/p/13624424.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!