go内建容器-数组

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)
}

转载于:https://www.cnblogs.com/lz120792/p/9588526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值