Go Lang 是一種現代化的程式語言,它以其簡潔高效的特點在程式設計界迅速嶄露頭角。在 Go Lang 中,結構體(Struct)是一種常見的資料類型,它可以用來組織和儲存一組相關的資料。然而,在某些情況下,我們可能需要定義一個包含多個結構體的數組,並對其進行操作和繼承。本文將為大家介紹在 Go Lang 中如何建立和使用繼承的結構體數組,以便更好地應對複雜的資料結構和程式需求。
最近我開始用 golang 建立一款西洋棋遊戲,我面臨的一個問題是將不同的角色(即 pawn、knight、king)儲存在單一陣列中。
package main import "fmt" type character struct { currposition [2]int } type knight struct { c character } func (k knight) move() { fmt.println("moving kinght...") } type king struct { c character } func (k king) move() { fmt.println("moving king...") }
在上面的例子中,我們可以將 knight 和 king 放在同一個陣列中嗎,因為它們是從同一個基底類別繼承的?
喜歡
characters := []character{Knight{}, King{}}
type character interface { move() pos() [2]int } type knight struct { pos [2]int } func (k *knight) move() { fmt.println("moving kinght...") } func (k *knight) pos() [2]int { return k.pos } type king struct { pos [2]int } func (k *king) move() { fmt.println("moving king...") } func (k *king) pos() [2]int { return k.pos }
以下語句經過此變更後進行編譯:
characters := []character{&Knight{}, &King{}}
此外,您可能需要像本範例中的指標接收器。
以上是Go Lang 中繼承的結構體數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!