博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go切片基础
阅读量:6243 次
发布时间:2019-06-22

本文共 1845 字,大约阅读时间需要 6 分钟。

1 package main 2  3 import "fmt" 4  5 //切片(Slice)本身没有数据,是对底层Array的一个view 6 //不使用指针就可以改数组内容 7 //slice可以向后扩展,但是不可以向前扩展 8 //s[i]不可以超越len(s),s[:]向后扩展不可以超越底层数组Cap(s) 9 //添加元素时如果超越Cap,系统会重新分配更大的底层数组10 11 func updateSlice( s []int){  //s不加长度代表切片12     s[0] = 10013 }14 15 func main() {16     arr := [...]int{ 0, 1, 2, 3, 4, 5, 6, 7}17     fmt.Println("arr[2:6] = ", arr[2:6])  //[2 3 4 5]18     fmt.Println("arr[:6] = ", arr[:6])    //[0 1 2 3 4 5]19     s1 := arr[2:]20     fmt.Println("arr[2:] = ", s1)   //[2 3 4 5 6 7]21     s2 := arr[:]22     fmt.Println("arr[:] = ", s2)    //[0 1 2 3 4 5 6 7]23 24     //修改切边内容25     updateSlice(s1)26     fmt.Println(s1)             //[100 3 4 5 6 7]27     fmt.Println(arr)            //[0 1 100 3 4 5 6 7]28 29     updateSlice(s2)30     fmt.Println(s2)            //[100 1 100 3 4 5 6 7]31     fmt.Println(arr)           //[100 1 100 3 4 5 6 7]32 33     //再次切片34     s2 = s2[:5]35     fmt.Println(s2)         //[100 1 100 3 4]36     s2 = s2[2:]37     fmt.Println(s2)      //[100 3 4]38 39     //slice扩展40     arr[0], arr[2] = 0, 2  //把值改回去41     s1 = arr[2:6]42     s2 = s1[3:5]43     fmt.Println(s1)  //[2 3 4 5]44     fmt.Println(s2)  //[5 6]45     //6在s1中并没有,为什么可以取出来呢?46     //slice可以向后扩展,但是不可以向前扩展47     fmt.Printf("len(s1)=%d, cap(s1)=%d\n", len(s1),cap(s1))  //4,648     // fmt.Println( s1[3:7]) 出错49     //fmt.Println( s1[4]) 出错50     fmt.Printf("len(s2)=%d, cap(s2)=%d\n", len(s2),cap(s2))    //2,351 52     //向slice添加元素53     fmt.Println(arr)  //[0 1 2 3 4 5 6 7]54     s3 := append(s2, 10)55     s4 := append(s3, 11)56     s5 := append(s4, 12)57     fmt.Println(s2)   //[5 6]58     fmt.Println(s3)   //[5 6 10]59     fmt.Println(s4)   //[5 6 10 11]60     fmt.Println(s5)   //[5 6 10 11 12]61     fmt.Println(arr)  //[0 1 2 3 4 5 6 10]  把7改为了1062 }

 

转载于:https://www.cnblogs.com/yuxiaoba/p/9345714.html

你可能感兴趣的文章
如何在外部终止一个pengding状态的promise对象
查看>>
初级模拟电路:1-5 二极管的其他特性
查看>>
《简明Python教程》Swaroop, C. H. 著 第1章 介绍
查看>>
Chapter 4. Working with Key/Value Pairs
查看>>
Python基础:Python可变对象和不可变对象
查看>>
[css3]文字过多以省略号显示
查看>>
vim显示行号、语法高亮、自动缩进的设置
查看>>
shell中的if语句
查看>>
WCf客户端测试
查看>>
Java线程面试题 Top 50
查看>>
java内存模型
查看>>
python继承关系及DVD案例
查看>>
木其工作室代写程序 [原]使用Filter过滤ip禁止访问系统
查看>>
2.6 The Object Model -- Bindings
查看>>
2.4 The Object Model -- Computed Properties and Aggregate Data with @each(计算的属性和使用@each聚合数据)...
查看>>
二叉树问题(区间DP好题)
查看>>
PHP基础
查看>>
PHP奇淫技巧
查看>>
Centos中配置环境变量
查看>>
mysql中判断记录是否存在方法比较【转】
查看>>