From 25cfdbe2292a838b9a2e23b5d987088d85c7bb98 Mon Sep 17 00:00:00 2001 From: huchao <2557523039@qq.com> Date: Fri, 3 Feb 2023 16:35:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:add=20=E4=BB=8E=E6=95=B0=E7=BB=84=E4=B8=AD?= =?UTF-8?q?=E6=88=AA=E5=8F=96=E5=88=87=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...52\345\217\226\345\210\207\347\211\207.go" | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 "golang/go-study/exersise/\346\225\260\347\273\204\344\270\216\345\210\207\347\211\207/\344\273\216\346\225\260\347\273\204\344\270\255\346\210\252\345\217\226\345\210\207\347\211\207.go" diff --git "a/golang/go-study/exersise/\346\225\260\347\273\204\344\270\216\345\210\207\347\211\207/\344\273\216\346\225\260\347\273\204\344\270\255\346\210\252\345\217\226\345\210\207\347\211\207.go" "b/golang/go-study/exersise/\346\225\260\347\273\204\344\270\216\345\210\207\347\211\207/\344\273\216\346\225\260\347\273\204\344\270\255\346\210\252\345\217\226\345\210\207\347\211\207.go" new file mode 100644 index 00000000..26f2fb16 --- /dev/null +++ "b/golang/go-study/exersise/\346\225\260\347\273\204\344\270\216\345\210\207\347\211\207/\344\273\216\346\225\260\347\273\204\344\270\255\346\210\252\345\217\226\345\210\207\347\211\207.go" @@ -0,0 +1,39 @@ +package main + +import "fmt" + +// 1) 如果没有指定max:max的值为截取对象(数组、切片)的容量 +// +// 2) 如果指定max:max 值不能超过原对象(数组、切片)的容量。 +// +// 3)利用数组创建切片,切片操作的是同一个底层数组。 + +// 参考文章:https://blog.csdn.net/weixin_42117918/article/details/81913036 + +func main() { + + arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} + fmt.Println("原数组:", arr) + + fmt.Println("对数组进行截取:") + //如果指定max,max的值最大不能超过截取对象(数组、切片)的容量 + s1 := arr[2:5:9] //max:9 low:2 high;5 len:5-2(len=high-low) cap:9-2(cap=max-low) + fmt.Printf("数组截取之后的类型为:%T, 数据是:%v;长度:%d;容量:%d\n", s1, s1, len(s1), cap(s1)) + // 数组截取之后的类型为:[]int, 数据是:[3 4 5];长度:3;容量:7 + + //如果没有指定max,max的值为截取对象(切片、数组)的容量 + s2 := s1[1:7] //max:7 low:1 high;7 len:7-1(len=high-low) cap:7-1(cap=max-low) + fmt.Println("对切片进行截取:") + fmt.Printf("对切片进行截取之后的数据是:%v,长度:%d; 容量%d\n", s2, len(s2), cap(s2)) + // 对切片进行截取之后的数据是:[4 5 6 7 8 9],长度:6; 容量6 + + //利用数组创建切片,切片操作的是同一个底层数组 + s1[0] = 8888 + s2[0] = 6666 + fmt.Println("操作之后的数组为:", arr) + // 操作之后的数组为: [1 2 8888 6666 5 6 7 8 9 10] + /* + 切片对数组的截取 最终都是切片操作的底层数组(通过指针操作原数组) + */ + +}