一、結構體
·Go 語言中數組可以存儲同一類型的數據,但在結構體中我們可以為不同項定義不同的數據類型。
·結構體是由一系列具有相同類型或不同類型的數據構成的數據集合。
結構體-定義
結構體定義需要使用 type 和 struct 語句。struct 語句定義一個新的數據類型,結構體中有一個或多個成員。type 語句設定了結構體的名稱。結構體的格式如下:
type struct_variable_type struct { member definition member definition ... member definition }
一旦定義了結構體類型,它就能用於變量的聲明,語法格式如下:
variable_name := structure_variable_type {value1, value2...valuen}
或
variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
結構體-示例
輸出結果:
Book 1 title : Go 語言
Book 1 author : Go 作者
Book 1 author : Go語言教程
Book 1 book_id : 64425
二、數組
數組是具有相同唯一類型的一組已編號且長度固定的數據項序列。
Go 語言數組聲明需要指定元素類型及元素個數,語法格式如下:
var variable_name [SIZE] variable_type
以上為一維數組的定義方式。例如以下定義了數組 balance 長度為 10 類型為 float32:
var balance [10] float32
數組-初始化:
1.以下演示了數組初始化:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
2.我們也可以通過字面量在聲明數組的同時快速初始化數組:
balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
3.如果數組長度不確定,可以使用 ... 代替數組的長度,編譯器會根據元素個數自行推斷數組的長度:
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0} 或 balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
4.如果設置了數組的長度,我們還可以通過指定下標來初始化元素:
// 將索引為 1 和 3 的元素初始化 balance := [5]float32{1:2.0,3:7.0}
5.初始化數組中 {} 中的元素個數不能大於 [] 中的數字。
如果忽略 [] 中的數字不設置數組大小,Go 語言會根據元素的個數來設置數組的大小:
balance[4] = 50.0
數組-訪問元素
數組元素可以通過索引(位置)來讀取。格式為數組名后加中括號,中括號中為索引的值。例如:
var salary float32 = balance[9]
數組元素可以通過索引(位置)來讀取(或者修改),索引從0開始,第一個元素索引為 0,第二個索引為 1,以此類推。
輸出結果:
4 [1 2 3 4 5] [1 2 3 4 5] [d b c] [1 2 3 4 5]