go 的類別
在前一篇文章跟大家分享 go 的介面,但是在其中有些內容尚未跟大家說明因為要說明該內容有點多,所以另闢一篇文章專門說明那東西,所以這篇文章要說明的就是 go 的類別。
go 類別的宣告及使用
類別是什麼呢,簡單說明就是 go 的自訂義型別,為什麼筆者會稱為類別呢,因為類別的關鍵字是type
,接下來就跟大家分享這篇文章的主要內容是 go 的類別,說明的內容分為宣告以及使用,以下分為兩個段落個別介紹。
類別的宣告
宣告類別的方式就如同其它語言的繼承一樣,只不過 go 語言沒有繼承所以筆者不用這個詞來說明他,接下來大家看看如何宣告一個自訂義的型別
type MyFloat float64
這宣告一個自定義型別 MyFloat 擁有 float64
的屬性,簡單講就是把自定義的這個型別當成 float64
來使用。當然我們的自定義型別不能這麼單純,所以接下來要介紹複雜的自定義型別。
結構的宣告
接下來要說明的是複雜的型別 struct
,他的宣告方式請看下列說明。
type Vertex struct {
X int
Y int
}
上面例子跟大家說明複雜的結果要用 struct
這關鍵字,並在 內宣告結構所包含的內容,在這例子裡是兩個
int
分別為X、Y,接下來要說明如何使用這自定義的型別。
類別的使用
上一個段落跟大家分享如何宣告一個複雜型別,接下來跟大家分享如何使用這個自定義型別,請大家看一下下列例子
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
p := Vertex{1,1}
pos(p)
}
func pos(p Vertex){
fmt.Print("X:",p.X,", Y:",p.Y)
}
這裡我們生成一個名為 p 的自定義複雜型別,並給予其各ㄧ個整數 1,然後再方法內透過 .
來取得該屬性的值。
結論
介紹自定義型別先到這裡告一段落,但是 go 的類別並不是這麼簡單而已,接下來要更進一步介紹 *
這東西。