package main

 import "fmt"

 //切片(Slice)本身没有数据,是对底层Array的一个view
//不使用指针就可以改数组内容
//slice可以向后扩展,但是不可以向前扩展
//s[i]不可以超越len(s),s[:]向后扩展不可以超越底层数组Cap(s)
//添加元素时如果超越Cap,系统会重新分配更大的底层数组 func updateSlice( s []int){ //s不加长度代表切片
s[] =
} func main() {
arr := [...]int{ , , , , , , , }
fmt.Println("arr[2:6] = ", arr[:]) //[2 3 4 5]
fmt.Println("arr[:6] = ", arr[:]) //[0 1 2 3 4 5]
s1 := arr[:]
fmt.Println("arr[2:] = ", s1) //[2 3 4 5 6 7]
s2 := arr[:]
fmt.Println("arr[:] = ", s2) //[0 1 2 3 4 5 6 7] //修改切边内容
updateSlice(s1)
fmt.Println(s1) //[100 3 4 5 6 7]
fmt.Println(arr) //[0 1 100 3 4 5 6 7] updateSlice(s2)
fmt.Println(s2) //[100 1 100 3 4 5 6 7]
fmt.Println(arr) //[100 1 100 3 4 5 6 7] //再次切片
s2 = s2[:]
fmt.Println(s2) //[100 1 100 3 4]
s2 = s2[:]
fmt.Println(s2) //[100 3 4] //slice扩展
arr[], arr[] = , //把值改回去
s1 = arr[:]
s2 = s1[:]
fmt.Println(s1) //[2 3 4 5]
fmt.Println(s2) //[5 6]
//6在s1中并没有,为什么可以取出来呢?
//slice可以向后扩展,但是不可以向前扩展
fmt.Printf("len(s1)=%d, cap(s1)=%d\n", len(s1),cap(s1)) //4,6
// fmt.Println( s1[3:7]) 出错
//fmt.Println( s1[4]) 出错
fmt.Printf("len(s2)=%d, cap(s2)=%d\n", len(s2),cap(s2)) //2,3 //向slice添加元素
fmt.Println(arr) //[0 1 2 3 4 5 6 7]
s3 := append(s2, )
s4 := append(s3, )
s5 := append(s4, )
fmt.Println(s2) //[5 6]
fmt.Println(s3) //[5 6 10]
fmt.Println(s4) //[5 6 10 11]
fmt.Println(s5) //[5 6 10 11 12]
fmt.Println(arr) //[0 1 2 3 4 5 6 10] 把7改为了10
}

Go切片基础的更多相关文章

  1. Go语言之数组与切片基础

    一.数组 数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储 Go 语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改 1.数组的定义 // 定义一个大小为 ...

  2. 【转】10.4新特性-ArcGIS 10.4矢量切片介绍

    原文地址:http://zhihu.esrichina.com.cn/article/567 1.矢量切片简介GIS的底图一直使用金字塔技术进行切图,使用户能够快速访问指定级别的地图或者影像.但是切图 ...

  3. <4>Python切片功能剖析

    引用文章:https://mp.weixin.qq.com/s/NZ371nKs_WXdYPCPiryocw 切片基础法则: (1)公式,禁止0. (2)i, n同号:从序列的第i位索引起,向右取n- ...

  4. SQL开发测试使用基础

    目录 一.客户端配置与使用    1.oracle(PLSQL Developer)    2.hive(hive cli)及命令    3.postgre(pgAdmin)   二.注意事项及基础 ...

  5. golang slice 切片原理

    golang 中的 slice 非常强大,让数组操作非常方便高效.在开发中不定长度表示的数组全部都是 slice .但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果 ...

  6. Python Numpy基础教程

    Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...

  7. 『GoLang』数组与切片

    数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构):这种类型可以是任意的原始类型例如整型.字符串或者自定义类型. 数组长度必须是一个常量表达式,并且必须是一个非负 ...

  8. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  9. 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值

    这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...

随机推荐

  1. MAX458X多通道模拟切换开关(类似74HC4051)

  2. 搜狐前端css常用命名

  3. 外文翻译 《How we decide》被情感愚弄 第三节

    本科论文答辩终于结束啦,一切都要继续回到正轨. 这是第三章章最后一节 书的导言 本章第二节 本章第一节 "信用卡是我的敌人."Herman Palmer这样说到.在平日,Herma ...

  4. AJPFX对选择和冒泡两种排序的理解

    冒泡排序和直接选择排序都是排序中比较简单和容易实现的算法,先简单说说两者的区别:先以按照元素从小到大为:冒泡排序:将相邻元素两两比较,如果有比较大的,就把比较大的放在右边,这样的结果就是一轮排序完毕后 ...

  5. spring boot使用jpa查询mysql数据库的视图时不报错,但查询结果数据总是重复第一条

    问题描述: 在数据库里查询到的结果是正常显示的 在程序中返回的结果: 解决方法: 添加行号作为主键: 解决! 我明明是前端啊前端,为啥在搞后台....,总感觉我要在向全栈进发,希望自己有朝一日真的能成 ...

  6. check_http.c:312: error: ‘ssl_version’

    安装nagios-plugins-1.4.16,安装的过程中出现了错误,提示如下.check_http.c:312: error: ‘ssl_version’ undeclared (first us ...

  7. html调用js提示方法名 is not defined处理方法

    解决办法(方法名 is not defined): dosave=function(){ alert("方法名在前"); } 下面这种写法有时候会出现错误: function do ...

  8. http以及http协议简单理解

    HTTP协议是超文本传输协议的缩写,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议:HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)HTTP作 ...

  9. 51nod 1417 天堂里的游戏

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 多年后,每当Noder看到吉普赛人,就会想起那个遥远的下午. Noder躺在草地上漫无目的的张望,二 ...

  10. java 面试题整理

    java面试题 1.接口和抽象类的区别 抽象类 接口 抽象类中可以有默认方法 在java8之前,不能有默认方法 extends implements 抽象类中可以有构造器 接口中不能有构造器 抽象类中 ...