go语言基础知识笔记(二)之数组和切片
数组和切片知识用的也是比较多,的给我们工作带来很大的便利
(一) 数组
定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型
//golang中数组定义的四种方法
1.先声明,后赋值
var arr1 [2]int
arr1[0]=1
arr1[1]=2
2.声明同时赋值
var arr2 = [2]int{1,2}
//或者
arr2 := [2]int{1,2}
3.不指定长度程序自动计算长度
var arr = [...]int{1,2}
//或者
arr := [...]int{1,2}
4.key和value的形式
var arr = [...]int{1:1,0:2}
//或者
arr := [...]int{1:1,0:2}
//golang中数组遍历的两种方法
1.常规方法
for i:=0;i<len(arr);i++ {
fmt.Printf("arr[%d] = %v",i,arr[i])
}
2.高级方法(推荐使用)
for key(_),value:= range arr{
fmt.Printf("arr[%d] = %v",i,arr[i])
}
//动态修改数组的值,默认情况下数组是值传递 //形参定义成一个指针数据类型
func T2(a *[]string) {
*a[] = //修改原来的值
} func main() {
s1 := [...]string{,}
T2(&s1) //传递一个数组的地址作为实际参数
s1 = append(s1 , "33")
fmt.Println(s1)
}
//数组指针和指针数组
1.数组指针即是一个指针并且这个指针保存了一个指向数组的地址
var arr = [...]int{5:2}
//数组指针
var pf *[6]int = &arr
2.指针数组即是一个数组,数组里面保存很多指针x,y := 1, 2pfArr := [...]*int{&x,&y}
//多维数组(二维)
1.多维数组即数组里面又是一个数组
2.定义方法
2.1先定义再赋值
var arr1 [2][2]int
arr1[0][0] = 5.....
2.2定义的同时赋值
var arr2 [2][2]int = [2][2]int{{1,2,3},{3,4,5}}
3.多维数组的遍历
3.1
for i:=0;i<len(arr);i++{
for j:=0;i<len(arr[i]);j++{
}
}
3.2
for i;value1 :=range arr2{
for j;value2 :=range value1 {
}
}
(二) 切片
切片是数组的引用,并且是动态的数组,长度可以变化.
//切片的定义的几种方法
.数组的引用
var intArr [4]int = [...]{12,34,44,33,11}
slice := intArr[1:3]
2.make定义
var slice []type = make([]type,len,[cap])
3.常规用法
var slice []type = []type{value1,value2,value3}
遍历的方法和数组也是一样的就不继续啰嗦了
//切片的内置函数
.动态添加切片
append(切片,value1,value2,value3)
.切片的copy
copy(切片1,切片2)
//字符的切片
1.字符的切片在某种情况下是不可变的
2.想要修改字符串中的值[]byte(str)[这种是处理英文方式],[]rune(str)[这种是处理中文方式]
go语言基础知识笔记(二)之数组和切片的更多相关文章
- CSS基础知识笔记(二)之选择器
CSS选择器 选择器{ 样式; } 每一条css样式声明(定义)由两部分组成,形式如下: 在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元 ...
- HTML基础知识笔记(二)
HTML <img>标签 语法: <img src="图片地址" alt="下载失败时的替换文本" title = "提示文本&qu ...
- C语言基础知识-数组和字符串
C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...
- ios开发学习笔记001-C语言基础知识
先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
- C语言基础知识-运算符与表达式
C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...
- Java多线程基础知识笔记(持续更新)
多线程基础知识笔记 一.线程 1.基本概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程序的一次执行过程,或是 ...
- OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
随机推荐
- SQL 修改字段类型和长度,常见类型介绍及数据库设计工具PowerDesigner和astah
1.电话字段设置24个Byte竟然不够,好吧设置为50的长度. alter table <表名> alter column <字段名> 新类型名(长度) 举例: ) 2.删除一 ...
- MySQL下载与MySQL安装图解(MySQL5.7与MySQL8.0)
MySQL下载与MySQL安装图解(MySQL5.7与MySQL8.0) 1.MySQL下载(MySQL8.0社区版) mysql下载方法,请根据风哥以下步骤与图示来下载mysql8.0最新社区版本: ...
- C# ComboBox绑定值问题
使用这种方式始终绑定值有问题: cbxSchool.DataSource = schoolList; cbxSchool.DisplayMember = "school_name" ...
- 什么是validationQuery
validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句.每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQue ...
- oracle知识点总结基础篇1
最近学习了Oracle,对学习内容挑干的进行总结! 1.准备工作:学习Oracle首先就是安装环境.我装的是oracle11g. 2.安装完成之后在dos窗口中,输入 sqlplus 再输入用户名和 ...
- .NET 增加扩展方法
声明:通过一个js的实例来告诉你C#也可以实现这样的效果. 在JS中是这样实现的: 你是否见过JS中给系统默认Array对象增加一个自定义查重方法contains 在没有给Array原型上增加cont ...
- JS 转换HTML转义符
JS转换HTML转义符 //去掉html标签 1 2 3 function removeHtmlTab(tab) { return tab.replace(/<[^<>]+?& ...
- Django-admin管理工具
知识预览 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目 ...
- 10-PI开发手册-ERP发布服务供外围系统调用(RFC类型)
一. 文档信息 版本号* 更新日期* 姓名* 更新内容及更新理由* 备注* V1.0 2019/02/19 fanjb 文档创建 以福利接口13589(Z00HRJ_GJJ_REV_FI ...
- 偶发异常BUG,如何高效精准分析排查定位?
偶发异常BUG,如何高效精准分析排查定位? 作为测试,经常会收到领导.同事.用户反馈过来各种各样BUG,令人措手不及 首选需要判断确认是不是BUG,不要急于给予回复,需有充分的条件给予说明回复 很多测 ...