Go语言学习笔记(四) [array、slice、map]
2、创建一个slice:sl := make([]<type>,len,cap),cap值可以省略(省略时,值等同于len),len表示存放元素的个数,cap表示容量。容量的大小cap =< real_cap < 2 * cap,当大小超过容量cap时,会容量会自动升级,但是必须说明的是,自动升级后,将会重新分配连续的内存地址。
a := [6] int {1,2,3,4,5,6} //数组下标从0开始s1 := a[0:4] //1,2,3,4s2 := a[:] //1,2,3,4,5,6,是a[0:len(a)]的简写s3 := a[:3] //1,2,3,是a[0:3]的简写//s4 := a[1:7] //数组越界,抛出invalid slice index 7 (out of bounds for 6-element array)s5 := s2[:] //1,2,3,4,5,6,此时的s5和s2依然指向a,可通过内建函数println(slice)打印出结果对比。s6 := [] int {1}s7 := append(s6,2)s8 := append(s7,2,2,3,3)//s9 := append(s7,s6...) //注意这后面有三个点,不加上的话会报类型错误。我开始还以为是省略号,纠结了半天。var ar = [...] int {1,2,3,5,6,7}n1 := copy(s10,ar[0:]) //返回结果 n1=6,此时 s10的值为[1 2 3 5 6 7]n2 := copy(s10,s10[2:]) //返回结果 n2=4,此时 s10的值为[3 5 6 7 6 7]关于slice容量扩容重新分配内存地址的问题也没有完全弄明白,以后再补充进来吧。
Go语言学习笔记(四) [array、slice、map]的更多相关文章
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 【GO】GO语言学习笔记四
流程控制 1.条件语句 举个栗子: if x>5 { return 1; }else{ return 0; } 注意: 条件语句不需要使用括号将条件包含起来(); 无论语句体内有几条语句, ...
- [C语言学习笔记四]变量与系统的交互
使用 const 创建常量和使用 volatie 优化变量 C语言中使用 const 定义常量. 例如: const INT a = 10; 此处如果添加a = 20;,编辑器则会报错,因为此处 a ...
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
- Go语言学习笔记十一: 切片(slice)
Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- 【Go语言学习笔记】为什么要选择Go语言
一门语言的兴起一定有他的原因,所谓天下苦Java久矣,Go的到来可以说很多后端开发的福音,尤其是在微服务.分布式这么火的今天,那么,他的优势到底是什么呢? 首先,我们需要现有后端语言的优势痛点: 其实 ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
随机推荐
- 整理CSS中display flex(布局利器)
关于display:flex布局,有人了解颇深,我也是看着别人的东西学习的. display:flex的布局是什么.基本概念之类的我根本就不了解,只会用.每次看到概念之类的东西,我都是扫一眼就过去. ...
- pip3 install的时候报错timed out
问题: 执行pip install requests报错 Read timed out. 解决方法: 修改超时时间: pip --default-timeout=1000 install -U r ...
- cisco基本配置命令
实验命令 router> enable 从用户模式进入特权模式 router# disable or exit 从特权模式退出到用户模式 router# show sessions 查看本机上的 ...
- Spring注解使用注意点
1 @RestController @Controller @RestController注解相当于@ResponseBody + @Controller合在一起的作用. 如果只是使用@RestC ...
- Unity3D在移动平台下加载AssetBundle导致Shader效果不正确的问题
这个问题,主要还是在移动平台下开发导致的. 在编辑器里调试加载AB时会导致Shader效果不正确的原因,主要还是编辑器下加载以IOS或是ANDROID平台打包的AB它所使用的shader已经编译成对应 ...
- navibar记录
@import (reference) "kmc-common.less"; .kmc{ font-family: PingFangSC-Reguxlar; font-weight ...
- 使用Python多渠道打包apk
使用Python生成多渠道包 往apk包中追加到一个空文件到META-INF目录以标识渠道,Android中获取此文件即可获得App的下载渠道 首先在info文件夹新建一个qdb.txt的空文本文件 ...
- 64位 windows10,MYSQL8.0.13重置密码(忘记密码或者无法登录)
上一节的MySQL的配置安装里,并没有用到配置文件my.ini.那在MYSQL8.0.13如何解决密码重置问题呢.我去网上搜了好多的资料都是改配置文件my.ini的,后来终于找到了一条命令:操作步骤如 ...
- pycharm激活方式
进入C:\Windows\System32\drivers\etc替换host文件,或者在host文件后加入0.0.0.0 account.jetbrains.com然后断网,断网,断网!最后输入K7 ...
- 第70节:Java中xml和tomcat
第70节:Java中xml和tomcat 前言: 哭着也要看完,字数: jdbc crud - statement dao java.sql.Driver The interface that eve ...