1.基础定义

声明时数组长度在数组成员类型前

语法:var variableName [length]int

//基本定义
var array1 [3]int
//定义并赋值
var array2 = [3]string{"o","k"}
array3 := [4]int{1,2}
//用'...'代替长度
array4 := [...]string{"o","de","k"}
//二维数组,两行三列
var doubleDimensionArr [2][3]int
//下标访问
fmt.Println(array4[1])
//直接输出
fmt.Println(array1,array2,array3,array4,doubleDimensionArr)

2.数组是值类型

golang中,数组是值类型的。表现为:[5]int、[6]int是不同的数据类型;用数组作为参数时会拷贝数组(符合golang的传参规范)。由于这个特性带来的不便利,一般不使用数组来进行开发,而使用slice或list

/*
调用func verify后,arr1内容不变
*/
var arr1 [3]int
verify(arr1)
func verify(arr [3]int) {
arr[1] = 1
fmt.Println(arr)
}

3.数组遍历

golang中有for循环和range两种方式遍历,for循环遍历时通过下标访问值,range方式通过接收range返回的下标和值进行遍历

/*
遍历数组
*/
func printArr(arr [3]int) {
//普通for循环
for n := 0;n<len(arr);n++{
fmt.Println(arr[n])
}
//使用range
for i,v := range arr{
fmt.Println(i,v)
}
//使用range+占位符
for _,v := range arr{
fmt.Println(v)
}
}

测试代码

package main
import "fmt"
/*
基本语法,编译器会赋初值
*/
func declareArray(){
//基本定义
var array1 [3]int
//定义并赋值
var array2 = [3]string{"o","k"}
array3 := [4]int{1,2}
//用'...'代替长度
array4 := [...]string{"o","de","k"}
//二维数组,两行三列
var doubleDimensionArr [2][3]int
//下标访问
fmt.Println(array4[1])
//直接输出
fmt.Println(array1,array2,array3,array4,doubleDimensionArr)
}
/*
验证值传递
*/
func verify(arr [3]int) {
arr[1] = 1
fmt.Println(arr)
}
/*
遍历数组
*/
func printArr(arr [3]int) {
//普通for循环
for n := 0;n<len(arr);n++{
fmt.Println(arr[n])
}
//使用range
for i,v := range arr{
fmt.Println(i,v)
}
//使用range+占位符
for _,v := range arr{
fmt.Println(v)
}
}
func main() {
declareArray()
var arr1 [3] int
printArr(arr1)
//下面的代码运行会报错,使用某些IDE会直接提示
//var arr2 [4] int
//printArr(arr2)
//调用verify后,arr1内容不变
verify(arr1)
fmt.Println(arr1)
//遍历数组
printArr(arr1)
}

go内建容器-数组的更多相关文章

  1. js的内建arguments数组

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

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

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

  3. go内建容器-Map

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

  4. go内建容器-切片

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

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

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

  6. golang内建容器

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

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

  8. JSP内建对象

    ① out - javax.servlet.jsp.jspWriter    out对象用于把结果输出到网页上. 方法: 1. void clear() ;    清除输出缓冲区的内容,可是不输出到c ...

  9. Python源码剖析——01内建对象

    <Python源码剖析>笔记 第一章:对象初识 对象是Python中的核心概念,面向对象中的"类"和"对象"在Python中的概念都为对象,具体分为 ...

随机推荐

  1. laravel 使用EasyWechat 3分钟完成微信支付(以APP支付为例)

    上一篇写了支付宝支付,然后这段时间我又把微信支付给接上了,作为萌新的我还是很有成就感的,哈哈~~好了,该写正事了. 第一步:创建应用及配配置  首先到微信的官方平台注册应用https://pay.we ...

  2. Oracle 时段负载情况

    ALTER session SET nls_date_format='yyyy-mm-dd hh24:mi:ss'; SELECT *  FROM ( SELECT A.INSTANCE_NUMBER ...

  3. July 18th 2017 Week 29th Tuesday

    My heart is stronger now that you are in it. 我的心里有了你,从此变得更强大. You will no longer feel lonely if ther ...

  4. 10个出色的NoSQL数据库(转)

    随着大数据的不断发展,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速.现今的计算机体系结构在数据存储方面要有庞大的水平扩展性,而NoSQL也正是致力于改变这一现状.目前G ...

  5. tensorflow训练代码

    from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf mnist = input_dat ...

  6. Flex控件之repeater和radioButton应用

    代码:http://www.cnblogs.com/modou/articles/2108346.html <?xml version="1.0" encoding=&quo ...

  7. HDU 1028 Ignatius and the Princess III 整数的划分问题(打表或者记忆化搜索)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1028 Ignatius and the Princess III Time Limit: 2000/1 ...

  8. iOS应用软件沙盒sandbox相关知识(整理)

    1.iOS沙盒机制原理 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. ...

  9. React--- react 初见React 总结

    简介 react 程序代码是透明的,需要什么装什么 代码实现逻辑清晰可见 第一天 React  基础构造 分别是  继承的 React.component(继承的依赖类)/dom(dom元素)/pro ...

  10. LeetCode 中级 - 救生艇(105)

    第 i 个人的体重为 people[i],每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit. 返回载到每一个人所需的最小船数.(保证每个人都 ...