在 Go 語言中,類型系統規定了變數的值,類型安全性和維護性。 Go 語言採用基於結構的類型系統,允許定義自訂類型(struct)和類型別名。值型別透過關鍵字 var 宣告,而指標型別在型別名前加星號。介面定義方法集合,實作介面的類型必須實作所有方法。
「簡介
型別系統是任何程式語言的核心特性,它規定了值的結構、操作和行為。 Go 語言採用結構為基礎的類型系統,強調類型安全和可維護性。
類型宣告
在Go 語言中,可以使用下列語法宣告類型:
type <类型名> <基础类型>
例如,以下程式碼宣告了一個名為Person
的類型,其中包含Name
和Age
兩個欄位:
type Person struct { Name string Age int }
值類型和指標類型
Go 語言中的每個值都屬於特定的類型,稱為其值類型。可以透過使用關鍵字 var
來宣告變數並指定其值類型。
var person Person
Go 語言也支援指標類型,指向另一個類型的變數。可以透過在類型名稱前加上一個星號(*)來建立指標類型。
var personPtr *Person
類型別名和基礎類型
類型別名允許為現有的類型建立別名。基礎類型是不能再被分解的內建類型,例如 int
、float64
和 string
。
以下程式碼建立了FullName
類型的別名,其基礎類型是string
:
type FullName = string
介面
#介面是一個類型,定義了一組方法。任何類型只要實作了介面中的所有方法,就可以稱為實作該介面。
以下程式碼定義了一個Animal
接口,其中包含一個Speak
方法:
type Animal interface { Speak() }
實戰案例
#以下是一個使用Go 類型系統的簡短範例:
package main type Person struct { Name string Age int } func main() { person1 := Person{"John", 30} // 值类型 person2 := &Person{"Jane", 35} // 指针类型 fmt.Println(person1.Name) fmt.Println(*person2.Name) }
此程式碼建立了兩個Person
類型的值:person1
是一個值類型,而person2
則是指向類型為Person
的變數的指標。
以上是探索Go語言的型別系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!