数组和切片知识用的也是比较多,的给我们工作带来很大的便利

(一) 数组

定义:在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, 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 {
        
    }
  
}

(二) 切片

  切片是数组的引用,并且是动态的数组,长度可以变化.

//切片的定义的几种方法
.数组的引用

  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语言基础知识笔记(二)之数组和切片的更多相关文章

  1. CSS基础知识笔记(二)之选择器

    CSS选择器 选择器{ 样式; } 每一条css样式声明(定义)由两部分组成,形式如下: 在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元 ...

  2. HTML基础知识笔记(二)

    HTML <img>标签 语法: <img src="图片地址" alt="下载失败时的替换文本" title = "提示文本&qu ...

  3. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  4. ios开发学习笔记001-C语言基础知识

    先来学习一下C语言基础知识,总结如下: 在xcode下编写代码. 1.编写代码 2.编译:cc –c 文件名.c 编译成功会生成一个 .o的目标文件 3.链接:把目标文件.o和系统自带的库合并在一起, ...

  5. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

  6. C语言基础知识-运算符与表达式

    C语言基础知识-运算符与表达式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用运算符分类 1>.算术运算符 用于处理四则运算. 2>.赋值运算符 用于将表达式的 ...

  7. Java多线程基础知识笔记(持续更新)

    多线程基础知识笔记 一.线程 1.基本概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程序的一次执行过程,或是 ...

  8. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

随机推荐

  1. java:数据结构(二)栈的应用(进制转换全收集)

    说到进制转换,java已经封装了基本的方法,在竞赛中使用封装的方法自然能节省大量时间 另一位仁兄介绍的封装好的方法: https://blog.csdn.net/m0_37961948/article ...

  2. rocketmq广播消息

    发布与模式实现.广播就是向一个主题的所有订阅者发送同一条消息. 在发送消息的时候和普通的消息并与不同之处,只是在消费端做一些配置即可. Consumer消息消费 public class Broadc ...

  3. 字符串转数字练习--String to Integer (atoi)

    Implement atoi which converts a string to an integer. The function first discards as many whitespace ...

  4. C学习笔记(逗号表达式)

    (1)书写: ① int i; i=(i=*,i*); printf("%d\n",i); i=60; ② int i; i=i=*,i*; printf("%d\n&q ...

  5. VS2017的MVC和Angular联合开发的配置文件作用

    在通过MVC和Angular联合开发项目时,项目里有几个重要的配置文件,下面列出这几个配置文件的分析和比较: 主要配置文件有appsettings.json,tsconfig.json,package ...

  6. gcc/g++ 编译参数

    1, -E(大写),预处理 例子:gcc -E test.cpp -o test.i 预处理,把程序里的#开头的替换掉,比如#include,然后生成test.i 2,-P(大写),去掉预处理生成的杂 ...

  7. serialize()与serializeArray()

    1.了解serialize()与serializeArray() serialize()序列化表单元素,用于ajax请求, serializeArray()序列化表单元素,类似于serialize,但 ...

  8. R语言学习——图形初阶之折线图与图形参数控制

    plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化):plot(x,y,type="b")表示将x置于横轴,y置于纵轴,绘制点集(x,y),然后使 ...

  9. wifi扫描

    获取当前位置的wifi,信道,强度,mac #include "ESP8266WiFi.h" IPAddress apIP(192, 168, 4, 1); void setup( ...

  10. python 中 try catch finally语句中含有return语句的执行情况

    无论是在try还是在except中,遇到return时,只要设定了finally语句,就会中断当前的return语句,跳转到finally中执行,如果finally中遇到return语句,就直接返回, ...