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() 方法 用科学 ...
 
随机推荐
- keil5到iar8的使用配置迁移
			
1.关于头文件的包含. keil: ALT+F7——>C/C++ IAR:ALT+F7——>C/C++ Compiler——>Preprocessor,(高版本汇编需要包含的头文 ...
 - cURL error 60: SSL certificate problem...
			
php在curl的时候报错 cURL error 60: SSL certificate problem: unable to get local issuer certificate (see ht ...
 - .NET默认一个客户端对同一个服务器地址同时只能建立2个TCP连接
			
做一个客户端的测试小程序测试web service的并发处理.开始用async task做,不管创建多少个task,用netstat看同时只有两个tcp连接.以为是async task的问题,改用Ba ...
 - Postman SMTP 存在跨站脚本(XSS)漏洞,请换用Post SMTP Mailer/Email Log
			
Postman SMTP 是一个安装量超过10W的WordPress插件,但是已经2年多没有更新,2017年6月29日,被发现存在跨站脚本(XSS)漏洞(查看详情),并且作者一直没有更新,所以被从Wo ...
 - MVC概述
			
学习MVC模式 一.MVC简介 MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它把应用程序分成三个核心模块:模型.视图.控制器,它们各自处理 ...
 - VMware安装xp虚拟机
			
VMware安装xp虚拟机 1.用到的软件: 2.安装VMware: 接受 选择自定义 要等上一小会. 输入密钥:百度一个就可以了. 安装成功: 禁用VMware网卡: 3.安装xp系统: 创建新的 ...
 - SLAM算法中提取特征总结
			
我们要知道三维空间中的点在图像中的位置,就需要提取特征与特征匹配了. 1.检测特征点 2.计算描述子 3.特征匹配 1.检测特征点 我们用到的检测特征点的方法是FAST算法,最大的特点就是快! 算法原 ...
 - Calendar and GregorianCalendar
			
1.GregorianCalendar是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统 2.注意 (1)月份:1月到12月[0-11] (2)星期:周日到周六[1-7] ...
 - Jenkins部分插件介绍
			
1.Join Plugin 功能介绍:这是一个触发job的插件,亮点在于它触发job的条件是等待当前job的所有下游job都完成才会发生. 例:假如A同时触发B1和B2两个下游job,然后配置这个插件 ...
 - ZJOI2019二试游记
			
ZJOI2019二试游记 Day -2 今天就要去被虐了!开一篇占个坑.禁赛警告 Day -1 早上zzy,下午zzq,无限懵逼... 过来的时候Sooke,memset0,老K坐我旁边,瑟瑟发抖.. ...