Go 語言程式設計 高階資料型別 陣列

2021-10-07 19:21:26 字數 3370 閱讀 4411

向函式傳遞陣列

指標陣列

陣列是具有相同資料型別的一組已編號且長度固定的資料項序列,可以是任意的原始資料型別也可以是自定義的資料型別。陣列元素可以通過索引(位置)來讀取(或者修改),索引從 0 開始,第乙個元素索引為 0,第二個索引為 1,以此類推。

golang 陣列宣告需要指定元素型別及元素個數,使用中括號來進行宣告,格式如下:

// 宣告

var variable_name[size] variable_type

// 初始化

var balance =[5

]float32

示例:

package main

import

"fmt"

func

main()

// 或者簡寫為:

// var balance = [5]int

for i :=

0; i <

5; i++

}

注意,初始化陣列中 {} 中的元素個數不能大於 中的數字。

golang 只是省略指定元素的個數,使用[...]來表示,建立乙個特殊的 「陣列」,編譯器會根據元素的個數來設定 「陣列」 的大小。需要注意的是,當我們不指定元素個數的時候,實際上建立的是切片資料型別,而非陣列,因為 golang 中定義的陣列,其長度總是固定的。

var balance =

[...

]float32

// or

var balance =

float32

陣列元素可以通過索引(位置)來讀取。格式為陣列名後加中括號,中括號中為索引的值。例如:

balance[4]

=50.0

var salary float32

= balance[

9]

示例:

package main

import

"fmt"

func

main()

for j :=

0; j <

10; j++

}

結果:

element[0] = 100

element[1] = 101

element[2] = 102

element[3] = 103

element[4] = 104

element[5] = 105

element[6] = 106

element[7] = 107

element[8] = 108

element[9] = 109

多維陣列定義格式:

var variable_name [size1]

[size2]

...[sizen] variable_type

二維陣列是常見的多維陣列型別,定義方式如下:

var arrayname[行]

[列] variable_type

/* 第一行索引為 0 */

,/* 第二行索引為 1 */

,/* 第三行索引為 2 */

}

二維陣列通過指定座標來訪問。如陣列中的行索引與列索引,例如:

val := a[2]

[3]// or

var value int

= a[2][3]

示例:

package main

import

"fmt"

func

main()

,,,,

,// 注意這裡必須要加上逗號 」,「,因為 golang 編譯器會自動補全 」;「 號。

}for i :=

0; i <

5; i++

}}

如果想向函式傳遞陣列實參,就需要在函式宣告時,宣告形參為陣列型別。

形參設定陣列大小:

void myfunction

(param[10]

int)

形參未設定陣列大小:

void myfunction

(param[

]int

)

同樣的,向函式傳遞陣列也有兩種方式:

值傳遞:直接傳遞陣列變數名。

引用傳遞:傳遞資料的指標。

示例:

package main

import

"fmt"

func

change

(arr[5]

int)

fmt.

println

("--------")}

func

main()

change

(balance)

for i :=

0; i <

5; i++

}

結果:

123

1750

--------

100023

1750

指標陣列,即儲存指標的陣列,跟 c 語言中的指標陣列類似。

宣告乙個整型指標陣列:

var ptr[max]

*int

;

示例:

package main

import

"fmt"

const max int=3

func

main()

var ptr[max]

*int

;for i =

0; i < max; i++

for i =

0; i < max; i++

}

Go 語言程式設計 高階資料型別 指標

乙個指標變數指向了乙個值的記憶體位址。類似於變數和常量,在使用指標前需要宣告 定義乙個指標變數。宣告乙個指標變數,格式 var var name type示例 var ip int 宣告整型指標變數 var fp float32 宣告浮點型指標變數 指標使用流程 宣告指標變數。為指標變數賦值。訪問指...

Go 語言程式設計 高階資料型別 Map 集合

集合 map 是一種無序的 hash 鍵值對集合。通過 key 來快速檢索 value,所以我們可以像迭代字串 陣列和切片那樣迭代它。golang 的 map 資料型別類似於 python 的字典資料型別,但封裝程度較原始。可以使用用 map 關鍵字來宣告乙個 map 變數,也可以使用內建的 mak...

Go語言資料型別

go語言任何乙個變數都有乙個型別。go語言的資料型別分為基礎型別 引用型別 結構型別 基礎型別 數值型別 字元型別 字串型別 布林型別 陣列型別 引用型別 切片 map channel inte cce型別 結構型別 結構體go語言整型分為有符號 無符號型別兩大型別 有符號整數型別 既可以支援正數也...