Go:数组

package main

import "fmt"

func main() {
	// 定义数组的方式
	var array1 [3]int
	array2 := [3]int{}
	fmt.Println(array1)
	fmt.Println(array2)

	// 初始化数据的方式:
	var array3 [3]int = [3]int{1, 2, 3}
	var array4 = [5]int{1, 2, 3}
	var array5 = [...]int{1, 2, 3}
	var array6 = [3]string{1: "2", 0: "1", 2: "3"}
	fmt.Println(array3) // [1 2 3]
	fmt.Println(array4) // [1 2 3 0 0]
	fmt.Println(array5) // [1 2 3]
	fmt.Println(array6) // [1 2 3]

	array7 := [...]int{1: 2, 0: 1, 3: 3}
	fmt.Println(array7)   // [1 2 0 3]

	// 遍历数组求平均值
	array8 := [4]float64{9.5654, 3.521, 12.50, 22.55158}
	total := 0.0
	for index := range array8 {
		total += array8[index]
	}
	tmp := fmt.Sprintf("avg=%.2f\n", total/float64(len(array8)))
	fmt.Println(tmp)  // avg=12.03
}

数组属于值类型,在默认情况下是值传递,因此会进行值拷贝。如果想在其他函数中,去修改原来的数组内容,可以使用引用传递方式(指针方式),如下:

package main

import "fmt"

func test(arr *[3]int) {
	arr[0] = 100
}

func main() {
	arr := [3]int{1, 2, 3}
	test(&arr)
	fmt.Println(arr) // [100 2 3]
}

 

posted @ 2019-05-25 00:17  就俗人一个  阅读(364)  评论(0编辑  收藏  举报