Go數組類型的使用

森林圖書館&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])
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 集合類型: Swift,和其他現代編程語言一樣,有內置的集合類型數組(Array)和字典(Dictionary),...
    小松樹先生閱讀 1,125評論 0 2
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,539評論 1 51
  • 日本北海道有個偏遠的小鎮叫做上白滝(long)站,由于人口銳減,乘客越來越少,車站運營日漸虧損。鐵路公司三年前計劃...
    要擼閱讀 735評論 2 7
  • “自動駕駛” 與 “手動駕駛” 本是汽車領域的專業術語,記得考駕駛證的時候,教練有專門講述了這兩者的區別,大意是:...
    冰上之路閱讀 1,052評論 2 4
  • 韓寒的“一個”App里被挑選進入這第一本文集的文章,風格都非常相近。 我發現我喜歡上了詩歌這種文體。至今不是很理解...
    C彳C亍C閱讀 761評論 0 1