go 数组、切片、以及for range的知识点

90 阅读1分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路。

让我们直接上代码

1

func main() {
	var a = [5]int{1, 2, 3, 4, 5}
	var r [5]int

	for i, v := range a {
		if i == 0 {
			a[1] = 12
			a[2] = 13
		}
		r[i] = v
	}
	fmt.Println("r = ", r)
	fmt.Println("a = ", a)
}

问: 输出是什么??

涉及到的知识点:

  1. for range 循环 会拷贝

  2. 数组与切片之间的联系

答案评论区见

我们继续探讨

2

func main() {
	var a = [5]int{1, 2, 3, 4, 5}
	var r [5]int

	for i, v := range &a {
		if i == 0 {
			a[1] = 12
			a[2] = 13
		}
		r[i] = v
	}
	fmt.Println("r = ", r)
	fmt.Println("a = ", a)
}

这次的输出呢??

嘿嘿~~ 我们继续

3

func main() {
	var a = []int{1, 2, 3, 4, 5}
	var r [5]int

	for i, v := range a {
		if i == 0 {
			a[1] = 12
			a[2] = 13
		}
		r[i] = v
	}
	fmt.Println("r = ", r)
	fmt.Println("a = ", a)
}

这回呢??

差不多了,这三种情况摸清楚了,基本就OK了