go语言基础知识笔记(二)之数组和切片
数组和切片知识用的也是比较多,的给我们工作带来很大的便利
(一) 数组
定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型
//golang中数组定义的四种方法1.先声明,后赋值 var arr1 [2]int arr1[0]=1 arr1[1]=22.声明同时赋值 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[0] = 99 //修改原来的值 }func main() {s1 := [...]string{11,22}T2(&s1) //传递一个数组的地址作为实际参数s1 = append(s1 , "33") fmt.Println(s1) }
//数组指针和指针数组1.数组指针即是一个指针并且这个指针保存了一个指向数组的地址
var arr = [...]int{5:2} //数组指针 var pf *[6]int = &arr2.指针数组即是一个数组,数组里面保存很多指针
x,y := 1, 2
pfArr := [...]*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 { } }
(二) 切片
切片是数组的引用,并且是动态的数组,长度可以变化.
//切片的定义的几种方法 1.数组的引用 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} 遍历的方法和数组也是一样的就不继续啰嗦了
//切片的内置函数 1.动态添加切片append(切片,value1,value2,value3) 2.切片的copycopy(切片1,切片2)
//字符的切片1.字符的切片在某种情况下是不可变的2.想要修改字符串中的值[]byte(str)[这种是处理英文方式],[]rune(str)[这种是处理中文方式]
转载于:https://www.cnblogs.com/learningPHP-students2018/p/10785685.html
go语言基础知识笔记(二)之数组和切片相关推荐
- 实体类 接口_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)
原文:Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口, 视频讲解) 这里分享三道编程题, 下面是我个人的视频讲解 二维数组, 五子棋游戏, 实体类和接口_哔哩哔哩 (゜-゜)つロ ...
- python代码计算矩形面积_学习资料Python语言基础知识笔记以及答案
01. Python语言基础知识等笔记: 02. Python作业答案: [例2-3]通过输入函数input()输入股票代码.股票名称.当天股票最高价和最低价,通过输出函数print()输出股票代码+ ...
- c语言笔记照片_C语言基础知识笔记
一.C语言的结构 1.Hello world 简单来说,一个C程序就是由若干头文件和函数组成. #include //包含头文件 /* *主函数 */ int main(){ printf(" ...
- java二维数组模拟用户登录_Java 语言基础编程题 (二维数组, 五子棋游戏, 实体类和接口)...
这里分享三道编程题, 下面是我个人的视频讲解我的解题思路以及代码运行演示https://www.zhihu.com/video/1253424180936724480 1. 编程实现以下需求: 定义一 ...
- PHP语言基础知识总结(二)
11.PHP中的读写分离方法例子:: a.https://www.cnblogs.com/we-jack/p/8204457.html b.https://blog.csdn.net/gxhacx/a ...
- java语言基础知识笔记
目录 1.Java开发环境: 1)java编译运行过程:----------常见面试题 * 2)名词解释:------------------常见面试题 3)配置环境变量:------------- ...
- python语言基础笔记_Python语言 基础知识笔记
背景知识 Python2 的默认编码是 ascii,Python3 的默认编码是 utf-8 输入输出 Python2 提供了 input,raw_input,print 等用于输入输出,但在 Pyt ...
- C语言基础知识(二)-------C++变量及赋值
变量及赋值 变量就是可以变化的量,而每个变量都会有一个名字(标识符).变量占据内存中一定的存储单元.使用变量之前必须先定义变量,要区分变量名和变量值是两个不同的概念. 变量定义的一般形式为:数据类型 ...
- java入门学习笔记(二)—— Eclipse入门学习之快捷键、java语言基础知识之各类关键字及其用法简析
一.Eclipse入门学习 1. 快捷键 对于一个编辑器,快捷键必不可少,是十分好用且有效的工具. 对于一个初学者,首先掌握了如下快捷键. (很多通用的快捷键不多说) Ctrl + / -- 注释当前 ...
最新文章
- mysql中begin end中变量定义_DECLARE只能用于BEGIN…END的开头部分定义局部变量,其作用范围只能在该BEGIN…END中。_学小易找答案...
- OSINT系列:威胁信息挖掘ThreatMiner
- centerandzoom 无效_百度地图 app 点击事件无效、不触发 解决方案
- 2022版中国钕铁硼行业竞争格局与产销潜力预测报告
- spring事务管理-Transaction模板(了解)
- python找出主力合约价格_如何找出全部期货主力合约和次主力合约?
- SpringBoot→thymeleaf静态模板
- One Button Combat
- Perl语言及安装运行环境
- Rufus创建Windows Server UEFI启动盘
- ll和 amp amp c语言,ll 和 java
- ue5-预计算可视性体积(PVS)
- BootstrapTable的列排序怎么搞
- html页面栅格系统,超好用的网页栅格化工具: GridGuide
- 【STM32CubeMX+Keil+PROTEUS】之---4*4键盘仿真驱动
- 极验:验证码在黑灰产对抗中的角色和实践
- Oracle报错1031,dataguard 归档日志报1031错误的一次处理
- Shell编程之第二讲——shell 的变量
- iOS app - 跳转到应用程序下载页面
- 20吉林大学计算机软件人工考研上岸分享--挂科重修过的我如何一年逆袭上岸吉大软件