golang语言学习第七课:数组

go语言中,定义数组有3种方法:

//定义数组的3种方法

     var arr1 [5]int   //必须在[]中填入数组的大小,如果不填则不是数组,而是切片

     arr2 := [3] int {1,3,5}  //第二种定义数组的方法,只能在函数体内用,必须给初始值。
     arr3 := [...] int {2,4,6,8,10}  //第三种,让编译器去计算个数的方法。
 var grid [4][5]int   //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组
     //go语言支持2维或多维数组

遍历数组也有2种方法:

具体看完整的练习代码吧:

package main

import "fmt"

func main() {
     //定义数组的3种方法

     var arr1 [5]int   //必须在[]中填入数组的大小,如果不填则不是数组,而是切片

     arr2 := [3] int {1,3,5}  //第二种定义数组的方法,只能在函数体内用,必须给初始值。
     arr3 := [...] int {2,4,6,8,10}  //第三种,让编译器去计算个数的方法。

     fmt.Println(arr1, arr2, arr3)

     var grid [4][5]int   //定义一个2维数组,4行5列,从前往后读,4个东西,4个什么东西呢,4个长度为5的int数组
     //go语言支持2维或多维数组
     fmt.Println(grid)

     //遍历数组的第一个方法,不常用
     for i:=0; i<len(arr3); i++ {
         fmt.Print(arr3[i])
     }

     //遍历数组的第2种方法,也是最常用的方法:
     for k:= range arr3 {
         fmt.Println(k)
         fmt.Println("----------")
    }

    for _,v:= range arr3 {   //注意:range不要打错成rang,少打字母e
        fmt.Println(v)
        fmt.Println("+++++++++++")
    }
    for k,v:= range arr3 {
        fmt.Println(k,v)
    }
}

需要注意的是: go语言中, 数组是值类型,不会对原始数组里的数据做出修改,只是简单的拷贝。

另外需要注意的是:

[10]int 和 [20]int 是不同的类型

调用 func f(arr [10]int) 会拷贝数组,不会改变数组里面的值, go语言中函数参数传递就一种方法:值传递,如需改变数组里的值,可以用指针。

在go语言中一般不直接使用数组,而是使用Slice切片

原文地址:https://www.cnblogs.com/golangxiong/p/10264388.html

时间: 2024-08-10 04:41:01

golang语言学习第七课:数组的相关文章

golang语言学习第三课 条件语句

if 是一个条件语句.if 语句的语法为: if condition { } 与其他语言不同, 其他语言 if后面有()括号,但是go语言是没有的. if 语句后面可以接可选的 else if 和 else 语句: if condition { } else if condition { } else { } 注意: 务必在 } 后半个花括号后面跟着 else关键词,如果换行跟着 else是错误的.无法通过编译. 如下代码是错误的,无法通过编译的: if condition { } else {

iOS学习笔记---c语言学习第七天

结构体 结构体是一种自定义的数据类型 struct 结构体名 { 类型说明符  成员名: … 类型说明符  成员名: }: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { struct teacher{ char name[30]; char sex; int age; char course[30]; }; typedef struct teacher Teacher; Teacher c

PHP第七课 数组的用法2

学习纲要: 1.了解数组函数 2.随机输出验证码 1.数组函数: 数组函数: //作用:提供了很多官方写的非常有用的代码段,提高编写速度. 1.数组的键值操作函数 2.统计数组的元素和唯一性 3.使用回调函数处理数组的函数 4.数组的排序函数 5.拆分,合并,分解与结合函数 6.数组与数据结构 7.其他有用的数组处理函数 数组的键值操作函数: 1.array_values(); 模拟获取key和value的值 <?php $arr=array("name"=>"u

golang语言学习第二课:变量类型及常量与枚举

go语言的变量类型: bool (true为0,false不等于0), string int 分好多种int,有点头晕,但用默认的int就足够了,根据机器判断,是32位的用int32,是64位的用int64. byte, 又是uint8的别名. rune(类似char,但是是utf-8编码的char),又是int32的别名. go语言没有float,只有float32, float 64(即使在32位的架构上还是64位) go语言原生支持复数类型,类似python, python也支持复数.go

《C语言学习笔记》指针数组及其应用

C语言中,最灵活但又容易出错的莫过于指针了.而指针数组,是在C中很常见的一个应用.指针数组的意思是说,这个数组存储的所有对象都为指针.除了存储对象为指针,即一个地址外,其它操作和普通数组完全一样. 1 #include <stdion.h> 2 3 int main() { 4 int i; 5 char *name[] = {"BASIC", "FORTRAN", "C++", "Pascal", "C

C语言学习第七章

今天开始学习指针,指针在C语言中具有很重要的地位,按照老师所说,学C学不好指针跟没学一样,可见指针在C语言中的重要地位.废话不多说,首先我们先要知道什么是指针. 指针:指针是一个变量,它存储另一个对象的内存地址,如果一个变量存储另一个对象的地址,则称该变量指向这个对象 . 换言之指针也是一种变量,只不过和平常变量不同的是指针内存储的是另一个对象在内存中的存储地址.指针内的值是一个十六进制的数值. 由于指针值是数据,指针变量可以赋值,所以一个指针的指向在程序执行中可以改变.指针p 在执行中某时刻指

C语言学习笔记:19_数组-字符数组与字符串(常用字符串函数)

/* * 19_数组-字符数组与字符串.c * * Created on: 2015年7月7日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> #include <string.h> /** *一:字符数组:就是存放字符的char[]数组 * 由于c语言中没有像java,C#中的String(字符串),只有存放字符 的字符型数组当字符串使用(java中的String类也是对字符数组进行封闭的). * *

C语言学习(1)数组复习

主题1:利用数组批量处理数据 1.数组和循环的结合 2.数组的定义 2.1)一维数组:类型符 数组名[常量表达式] 2.2)定义是为了通知计算机为其划分相应的内存 3.数组元素的引用 3.1表示形式:数组名[下标] 4.一维数组的初始化 如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”指定初始化的数组元素,系统会自动把它们初始化为0(如果是字符型数组,则初始化为‘\0’,如果是指针型数组,则初始化为null,即空指针) 主题2:怎么定义和引用二维数组 1.定义的一般形式

C语言学习笔记:18_数组-二维数组

/* * 18_数组-二维数组.c * * Created on: 2015年7月6日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> /** * 二维数组: * 为什么要用二维数组呢; * 例如: 网络班有2个班,每班有5人. * 要想存储一班的学生的年龄 定义一个一维数组搞定 int ages[5]={18,19,20,18,19}; * 然后将两个班中的所有年龄分开存入一个数组中 int classes[2]