今天要介紹 Go 語言的另一種資料型態,在先前,我們介紹的變數都是儲存單一的值或是多個相同型態的值,那如果要用變數表示較複雜的概念,像是紀錄一個人的名字、年齡或是身高時,由於這些是不同的資料型態,所以要記錄下來時,就必須使用不同的容器,這裡會介紹 Go 語言中的結構 Struct;此外,大部分的 Go 物件導向程式也會使用結構,但本篇單純介紹結構,先不會帶入物件導向的概念。
Go 使用 struct 做為結構的關鍵字,這是承襲 C 的慣例。下面介紹一下如何建立一個結構:
type Person struct {
name string
year int64
heigh float64
}
我們通常會在宣告結構時一併定義新的型別,因為種結構在程式裡,可能會多次使用,便於後續程式呼叫,使用 type 可以宣告新型別,在上述的例子我們建立一個叫 Person 的 struct,而裡面的結構組成有 name(string) 、year (int64)和 heigh(float64)。接著我們以此結構,宣告一個變數,並填入其裡頭的屬性:
package main
import "fmt"
type Person struct {
name string
year int64
heigh float64
}
func main() {
jack := Person{
name: "Jack",
year: 18,
heigh: 178,
}
fmt.Println(jack) // {Jack 18 178}
}
透過使用結構,我們可以更有效率地處資料數據,以下示範如何使用結構裡的數據,來進來一些運算及判斷,我們看以下範例:
package main
import (
"fmt"
)
type Rectangle struct {
length float64
width float64
}
func main() {
x := Rectangle{
length: 3,
width: 3,
}
if x.length == x.width{
fmt.Println("這是個正方形,且面積為", x.length * x.width)
} else{
fmt.Println("這只是個長方形,面積為", x.length * x.width)
}
}
上述的例子,先宣告一個名為 Rectangle 的結構,裡面屬性有 length 和 width,再以此結構宣告一個變數 x 並填入其屬性,然後依照屬性來判斷其是否為正方形,並計算其面積。
本文介紹了 Go 語言的結構 Struct,結構是 Go 語言一個很重要的資料型態,希望能讓讀者瞭解結構基本的使用方式。下一篇文章會介紹 Go 語言的 Map,謝謝讀者們今天的閱讀!
https://opensourcedoc.com/golang-programming/struct/