GO语言基础语法之数组(第十四天)

数组:

与C语言类似,数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推,

一维数组的定义方式:
Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:
var variable_name [SIZE] variable_type
。例如
var str [10] float64

多维数组声明方式:
var variable_name [SIZE1][SIZE2]…[SIZEN] variable_type
以下实例声明了三维的整型数组:
var str [512[1024][8]int

遍历方式:
与C语言遍历方式相同

注意点:

  • 想向函数传递数组参数,需要在函数定义时,声明形参为数组

  • 其中分为:形参设定数组大小y以及形参未设定数组大小
    void func test (str [] int) //分片,数组的处理,切片包含对底层数组内容的引用,类似于 指针传,函数中的修改对调用者可见。
    void func test1 (str [10] int) //拷贝,值传递,函数中的修改对调用者不可见

  • 未定义长度的数组只能传给不限制数组长度的函数 ,定义了长度的数组只能传给限制了相同数组长度的函数

package main

import "fmt"

/*数组拷贝,不改变调用者的数组的内容*/
func boo(tt [6]int) {
	tt[0], tt[len(tt)-1] = tt[len(tt)-1], tt[0]
	fmt.Println(tt)
}

/*切片,类似指针操作,可以修改源数组的内容*/
func poo(tt []int) {
	tt[0], tt[len(tt)-1] = tt[len(tt)-1], tt[0] //多重赋值时,变量的左值和右值按从左到右的顺序赋值
	fmt.Println(tt)
}
func TestShuzu() {

	b := [...]int{1, 3, 5, 7, 9, 11}
	boo(b)
	fmt.Println(b) // [1, 3, 5, 7, 9, 11]

	p := []int{1, 3, 5, 7, 9, 11}
	poo(p)
	fmt.Println(p) // [11 3 5 7 11 1]
}

func main() {

	TestShuzu()
}

API server listening at: 127.0.0.1:31758
[11 3 5 7 9 1]
[1 3 5 7 9 11]
[11 3 5 7 9 1]
[11 3 5 7 9 1]
Process exiting with code: 0
发布了205 篇原创文章 · 获赞 47 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/qq_32744005/article/details/105188168
今日推荐