森林圖書館&Lylean lee 作品
即使在清貧的歲月,也不能失去對幸福美好的向往,那些擺脫平庸的夢總能編制我們簡單的生活,為我們簡單的時光點綴希望。不能說我們總要多熱愛生活,但總要有一顆懂得欣賞和珍惜的心。 from《布魯克林有棵樹》
引用于:http://wufazhuce.com/one/1358
- 數組聲明必須指明長度[number]或者用[...]聲明告之Go自行計算長度。
- 數組作為形參傳入函數,如果需要改變原數組元素,必須以指針類型傳遞。否則為值傳遞,是無法影響原數組元素。
- 數組可以用 常規for循環 或者 for ... range 遍歷數組元素。
- 支持多維數組。
/*
值傳遞:
函數內部操作的形參變量其實是原數組的copy,
意味著形參又申請了一塊內存,存儲的內容與原數組相同而已。
形參變量的值發生改變,不會影響原數組。
*/
func changeArr(arr [5]int) {
arr[3] = 4
fmt.Println(arr[3]) //4
}
/*
指針傳遞:
函數內部操作的形參變量與原數組指向的都是同一塊內存區域,
形參變量的值發生改變,會影響原數組。
*/
func changeArrByPointer(arr *[5]int) {
arr[3] = 4
fmt.Println(arr[3]) //4
}
func main() {
arrA := [5]int{1, 2, 3}
fmt.Println(arrA[3]) //0
changeArr(arrA)
fmt.Println(arrA[3]) //原數組[3]的值沒有發生變化,依然是0。
changeArrByPointer(&arrA)
fmt.Println(arrA[3]) ////原數組[3]的值發生變化,被修改為4。
//利用range遍歷數組
for i, v := range arrA {
fmt.Printf("arrA[%d]=%d\n", i, v)
}
//利用下標遍歷數組
for i, j := 0, len(arrA); i < j; i++ {
fmt.Printf("arrA[%d]=%d\n", i, arrA[i])
}
}