Golang面試題 數組和切片的區別

題目

寫出下面兩個程序的輸出結果:
1.

package main

import "fmt"

func main() {
	a := [3]int{1, 2, 3}
	for k, v := range a {
		if k == 0 {
	            a[0], a[1] = 100, 200
		    fmt.Print(a)
		}
		a[k] = 100 + v
	}
	fmt.Print(a)
}

2.

package main

import "fmt"

func main() {
	a := []int{1, 2, 3}
	for k, v := range a {
		if k == 0 {
		    a[0], a[1] = 100, 200
		    fmt.Print(a)
		}
		a[k] = 100 + v
	}
	fmt.Print(a)
}

運行結果:

1.

2.

可以看到的是是一個指向數組的指針,那麼在修改slice的時候會改變數組的值。

和數組區別

數組傳的是值,不會改變元素的值。

 

轉載,侵刪。

參考鏈接:

https://blog.csdn.net/anakinsun/article/details/89487669?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158650754119724846411537%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=158650754119724846411537&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-soetl_so_first_rank_v2_rank_v25-1

 

https://blog.csdn.net/bobodem/article/details/80187558

 

https://www.cnblogs.com/FSH1014/p/12433337.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章