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. 用css来修饰页面文本

    <html> <head> <title>修饰文本字体</title> <style type="text/css"> ...

  2. 通用maper无法获取实体类com.qmtt.model.PhWxUser对应的表名问题

    spring boot在采用了热加载后,可能会出现“无法获取实体类com.qmtt.model.PhWxUser对应的表名!”的异常, 解决办法 在resources新建一个文件夹META-INF,新 ...

  3. mac上的应用提权

    一个mac上的app需要在/Applications/My.app/Contents/MacOS路径下创建一个配置文件,在开启root权限的账户下运行时ok,但是在没有开启root权限的账户下运行时, ...

  4. Redis学习笔记(二)字符串进阶

    1.增减操作 字符串可以储存字节串.整数.浮点数三种类型的值,如果值无法被解释为十进制的整数或浮点数,那么对此值进行增减操作会返回错误,如果对一个不存在的或者保存了空串的键进行增减操作,Redis将当 ...

  5. 关于ie的内存泄漏与javascript内存释放

    最近做一个公司的业务系统,公司要求能尽可能的与c/s近似,也就是如c/s一样,点击文本框可以弹出此项目的相关内容,进行选择输入.     我使用了弹出窗口,然后在子窗口双击选中项目,把选中的值返回给父 ...

  6. H3C S5024P交换机 H3C AR28-31路由器命令

    H3C S5024P交换机 H3C AR28-31路由器命令 交换机命令 各个视图的切换: 注意命令要在相应的视图下执行 在用户视图下键入quit命令可以断开与交换机的连接.在其它视图中键入quit命 ...

  7. 如何开发 Laravel 扩展包并发布到 Composer

    如何开发 Laravel 扩展包并发布到 Composer  发布于 2019-01-22 cxp1539  1074 Vie   开发扩展包 我们来做一个根据第一个字符或者汉字生成头像的larave ...

  8. JavaScript-基础类型和运算符

    JavaScript-基础类型和运算符 P02.稍微了解 1.js代码需要编写到script标签中 <script type="text/javascript"> 此处 ...

  9. docker 镜像管理操作

    镜像特点 1. 分层存储的文件 2.一个软件运行环境 3.一个镜像可以创建多个容器 4.一种标准交付 5.不包含Linux内核而又精简的Linux操作系统 6.不是一个单一的文件而是由多层构成的,可以 ...

  10. CAD交互绘制带周长面积的矩形框(网页版)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...