Go切片基础
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切片基础的更多相关文章
- Go语言之数组与切片基础
一.数组 数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储 Go 语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改 1.数组的定义 // 定义一个大小为 ...
- 【转】10.4新特性-ArcGIS 10.4矢量切片介绍
原文地址:http://zhihu.esrichina.com.cn/article/567 1.矢量切片简介GIS的底图一直使用金字塔技术进行切图,使用户能够快速访问指定级别的地图或者影像.但是切图 ...
- <4>Python切片功能剖析
引用文章:https://mp.weixin.qq.com/s/NZ371nKs_WXdYPCPiryocw 切片基础法则: (1)公式,禁止0. (2)i, n同号:从序列的第i位索引起,向右取n- ...
- SQL开发测试使用基础
目录 一.客户端配置与使用 1.oracle(PLSQL Developer) 2.hive(hive cli)及命令 3.postgre(pgAdmin) 二.注意事项及基础 ...
- golang slice 切片原理
golang 中的 slice 非常强大,让数组操作非常方便高效.在开发中不定长度表示的数组全部都是 slice .但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果 ...
- Python Numpy基础教程
Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...
- 『GoLang』数组与切片
数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构):这种类型可以是任意的原始类型例如整型.字符串或者自定义类型. 数组长度必须是一个常量表达式,并且必须是一个非负 ...
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...
- 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值
这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...
随机推荐
- Win7系统出现提示: “Windows已遇到关键问题,将在一分钟后自动重新启动。”
1. 若用户在使用Win7系统时,遇到上述系统故障,建议重启电脑.等电脑开机自检一过,马上按键盘上的F8键,选择进入安全模式.在安全模式下,进行系统还原.其他的解决方法见下. 1.或者,在安全模式下, ...
- asp.net MVC 错误信息“没有为该对象定义无参数的构造函数”请求各位大神帮忙!
在做一个登录的功能,没有用MVC自己生成的identity代码,仿照别人的代码写出了以后出现错误. 错误信息如下: 代码如下: 求各位asp.net大神支招,网上找了资料最终也没解决这个问题.
- AJPFX总结面向对象中成员变量和成员方法的定义
//面向对象中成员变量和成员方法的定义格式:========================================= 成员变量定义在类中方法外,可以被该类中所有方法使用. ...
- ES6—带默认值的函数参数及其作用域
在学习ES6函数一章时,发现了一个有意思的现象,原文描述如下: 这段话主要state了3个事实: ①函数参数有默认值时,会在声明初始化阶段形成一个单独的作用域 ②这个作用域在初始化结束后消失 ③没默认 ...
- 自定义 TypeHandler
自定义TypeHandler分为三个步骤: 1.编写自定义TypeHandler,并继承自抽象类BaseTypeHandler<T>,实现抽象方法 2.在mybatis-config.xm ...
- JDBC优化策略总结
相比Hibernate.iBatis.DBUtils等,理论上JDBC的性能都超过它们.JDBC提供更底层更精细的数据访问策略,这是Hibernate等框架所不具备的. 在一些高性能的数据操作中, ...
- BZOJ 1012: [JSOI2008]最大数maxnumber
★★ 输入文件:bzoj_1012.in 输出文件:bzoj_1012.out 简单对比时间限制:3 s 内存限制:162 MB [题目描述] 现在请求你维护一个数列,要求提供以下两种 ...
- PHP一句话后门过狗姿势万千之传输层加工
既然木马已就绪,那么想要利用木马,必然有一个数据传输的过程,数据提交是必须的,数据返回一般也会有的,除非执行特殊命令. 当我们用普通菜刀连接后门时,数据时如何提交的,狗狗又是如何识别的,下面结合一个实 ...
- 3.12 在运算和比较时使用NULL值
问题:NULL值永远不会等于或不等于任何值,也包括NULL值自己,但是需要像计算真实值一样计算可为空列的返回值.例如,需要在表emp中查出所有比“WARD”提成(COMM)低的员工,提成为NULL(空 ...
- liunx防火墙的基本操作
centos7中的使用 CentOS 7.0默认使用的是firewall作为防火墙 查看防火墙状态------->firewall-cmd --state 停止firewall-------&g ...