GO语言:数组

53 阅读1分钟
package main

import "fmt"

func main(){
	var ids = [5]int{1, 2, 3, 4, 5} //定义一个数组有5个int元素
	var names = [5]string{"Tom", "Jack", "Lisa", "", ""} 
	fmt.Println(ids, names) //打印数组
	fmt.Println(ids[0], names[2]) //打印数组中的元素
}
package main

import "fmt"

func main(){
	var names = [...]string{"Tom", "Jack", "Lisa"}
	for i := 0; i < len(names); i++ {
		fmt.Println(names[i])
	}
}
package main

import "fmt"

func main(){
	var data[100] int;
        
	for i := 0; i < len(data); i++ {
		data[i] = i * 2
	}
	
	var i = 0
	for i < len(data) {
		data[i] = i * 2
		i++
	}
	
	for x, num := range data {
		num = 2 * x
		fmt.Println(num)
	}
}
package main

import "fmt"

func main(){
	var matrix = [3][3]int{{11, 12, 13}, {21, 22, 23}, {31, 32, 33}}

	for i := 0; i < 3; i++{
		for j := 0; j < 3; j++{
			fmt.Print(matrix[i][j], " ")
		}
		fmt.Println()
	}
}
package main

import "fmt"

func showArr(arr [3]string){
	arr[0] = "Wuhu"
	fmt.Println("showArr", arr)
}

func main(){
	//var names[3] string
	var names = [3]string{"Tom", "Jack", "Lisa"}
	showArr(names)
	fmt.Println("main", names)
}
//当数组定义或者初始化时明确了数组的数量
//传参的函数也需要明确相同的数组数量
//且此时传参是数组的副本
package main

import "fmt"

/*
func showArr(arr [...]string){//不能把未指定长度的数组类型当作形参类型
	arr[0] = "Wuhu"
	fmt.Println("showArr", arr)
}
*/

func showArr(arr [3]string){
	arr[0] = "Wuhu"
	fmt.Println("showArr", arr)
}

func main(){
	var names = [...]string{"Tom", "Jack", "Lisa"} //不知道数组的长度

	showArr(names)
	fmt.Println("main", names)
}
//虽然names初始化的时候没有指定数组数量,但是初始化完了之后数组的数量就固定了
//此时对于函数的形参类型也得跟传入的参数一模一样
//此时数组传递的依旧是副本
数组传递参数就是简单的值传递,传递的是副本