go内建容器--数组

1.数量要写在类型的前面

2.可通过_省略变量

3.不仅是range,任何地方都可以使用_来省略变量

4.如果只要i,则可写成for i := range numbers

5.[10]int和[5]int是不同的类型

6.调用func f(arr [10]int)会对数组进行拷贝

7.在go语言中一般不直接使用数组

// 定义数组
var arr1 [5]int
arr2 := [3]int{1, 2, 3}
arr3 := [...]int{1, 2, 3, 4, 5}
var gridint = [4][5]int
var gridbool = [4][5]bool
// 遍历数组
for i := 0; i<len(arr3); i++{
fmt.Println(arr3[i])
}
// 使用range遍历
for i := range arr3{
arr2[i]
}
//i, v 可以获取对应元素的值, 如果不想要下标,可通过_省略内容
for i, v := range arr3{
fmt.Println(i, v)
}
for _, v := range arr2{
fmt.Println(v)
}
//求和
sum := 0
for _, v := range arr2{
sum += v
}
// 数组是值类型,在go语言中,[]int和[5]int意义不同,[]int是数组的切片,[5]int才是真正的数组,且不同长度的数组,类型不一样, 如[5]int,传入长度非5的数组会报错,因为是值类型,在里面改变的值,在外面是不会改变的,例如将arr的第一个元素改为100,外面的arr是不会改变的,也就是说,值类型在操作的时候是会进行拷贝

func printArray(arr [5]int){
for i, v := range arr{
fmt.Println(i, v)
}
}
printArray(arr1)
printArray(arr3)
printArray(arr2)//会报错

为什么要使用range?

因为意义明确同时还比较美观

c++没有类似于range的能力,java以及python中只能for each value,不能同时获取i和v

【笔记】GO内建容器--数组的更多相关文章

  1. go内建容器-数组

    1.基础定义 声明时数组长度在数组成员类型前 语法:var variableName [length]int //基本定义 var array1 [3]int //定义并赋值 var array2 = ...

  2. js的内建arguments数组

    调用函数时,只需在函数名后加一对用于传递参数的括号即可.var result = sum(1,2) 如果调用参数(a,b)的时候没有给值,则值默认为undefined.即使传递参数过多,多余的部分也会 ...

  3. C语言---数据结构(内建,数组,自定义)

    数组是一组有序数据的集合,每个元素都属于同一个数据类型. 一维数组的定义: 类型符  数组名[常量表达式] 常量表达式中,可以包括常量和符号常量,int a[3+5]是合法的.但是不能包含int a[ ...

  4. go内建容器-Map

    1.基础定义 golang中的map如同它的函数一样"纯粹",map就是用来存储键值对的容器,别管什么哈希不哈希的(底层已实现),用就行 //创建一个map m := map[st ...

  5. go内建容器-切片

    1.基础定义 看到'切片'二字,满脸懵逼.切的啥?用的什么刀法切?得到的切片有什么特点?可以对切片进行什么操作? 先看怎么得到切片,也就是前两个问题.切片的底层是数组,所以切片切的是数组:切的时候采用 ...

  6. go内建容器-字符和字符串操作

    1.基础定义 在基础语法篇提到过golang的rune相当于其他编程语言的char,其本质是一个int32(四字节),用[]rune来转换一个字符串时,得到的是个解码后的结果,存储在新开辟的[]run ...

  7. golang内建容器

  8. 跟着老猫来搞GO-内建容器Map

    前期回顾 在上面的文章中,老猫和大家分享了GO语言中比较重要的两种数据结构,一种是数组,另外一种是基于数组的slice.本篇文章想要继续和大家分享剩下的容器以及字符字符串的处理. MAP map的定义 ...

  9. Go学习笔记06-内建容器

    Go学习笔记06-内建容器 Go语言 数组 *切片(Slice) #F44336 Slice的操作 Map map示例 字符处理 数组 定义数组: //这样定义数组编译器自动初始化每个元素为0  va ...

  10. [原创]java WEB学习笔记71:Struts2 学习之路-- struts2常见的内建验证程序及注意点,短路验证,非字段验证,错误消息的重用

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. Alt+Space 快速打开切换程序 - Everything - AutoHotKey

    Alt+Space 快速打开切换程序 - Everything - AutoHotKey 需求 电脑切换任务 需要用鼠标找,效率比较低,用快捷键Alt+Space 打开列表,输入指定关键字回车,切换或 ...

  2. ncc - koa 后台源码加密打包工具 @vercel/ncc - webpack node打包更正规

    加个重点 webpack 打包更正规 安装 npm i -g @vercel/ncc 又发现一个 https://github.com/zeit/ncc npm i -g @zeit/ncc 卸载之前 ...

  3. stm32L4xx串口日志配置解析

    前言: st这两年推出了一款超低功耗的芯片,stm32l4xx系列,该系列芯片有着功耗低,尺寸小等特点,非常适合应用在可穿戴式设备. 团队在这一领域深耕,所以不可避免的要用到这款芯片,这里就针对该芯片 ...

  4. [Leetcode 1981. 最小化目标值与所选元素的差] 记忆化搜索

    记忆化搜索 class Solution { int ans = 5001; public int minimizeTheDifference(int[][] mat, int target) { i ...

  5. 记录--写一个高德地图巡航功能的小DEMO

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 风格设置 加载地图 使用AMapLoader.load加载地图,从控制台 申请一个属于自己的key import AMapLoader f ...

  6. cyc_to_led

    Entity: cyc_to_led File: cyc_to_led.v Diagram Generics Generic name Type Value Description MD_SIM_AB ...

  7. AXI4的主机协议代码分析

    AXI4的主机协议代码分析 一.模块分析 (1)端口列表 input wire INIT_AXI_TXN, // Asserts when ERROR is detected output reg E ...

  8. Generalized Focal Loss:Focal loss魔改以及预测框概率分布,保涨点 | NeurIPS 2020

    为了高效地学习准确的预测框及其分布,论文对Focal loss进行拓展,提出了能够优化连续值目标的Generalized Focal loss,包含Quality Focal loss和Distrib ...

  9. 关于Dockerfile部署nginx,访问静态资源403Forbidden问题

    今天项目遇到一个问题,服务器部署的nginx,在访问静态图片返回403 Forbidden. 容器是采用Dockerfile部署的,代码如下: FROM nginx:latest MAINTAINER ...

  10. archlinux运行appimage

    1.cd进入appimage所在的目录 cd your_folder 2.赋予appimage运行权限 chmod +x your_file.appimage 3.运行appimage格式文件 ./y ...