首頁 > 後端開發 > Golang > 主體

不能使用 struct 作為類型 struct {...}

WBOY
發布: 2024-02-10 19:06:09
轉載
666 人瀏覽過

不能使用 struct 作为类型 struct {...}

php小編小新在這篇文章中將介紹一個重要的注意事項:在PHP中,不能使用"struct"作為型別。這是由於PHP語言本身的限制,不支援類似C語言中的"struct"類型定義。在PHP中,我們可以使用類別(class)來定義自訂的資料結構,以及相關的屬性和方法。透過使用類別的方式,我們可以更靈活和強大地操作數據,實現更複雜的邏輯和功能。因此,在編寫PHP程式碼時,請記得避免使用"struct"作為型別定義,而是使用類別來替代。這樣能夠更符合PHP語言的特性和規範,讓程式碼更易於閱讀、更易懂和易於維護。

問題內容

我有這個程式碼:

type Iterable[T any] struct {
    Val  T
    End  T
    Next func() (bool, T)
}

func acceptStructWithNext[T any](r struct{ Next func() (bool, T) }) {
    fmt.Println(r)
}

func main() {

    iterable := Iterable[int]{
        Val: 0,
        End: 100,
        Next: func() (bool, int) {
            return true, 0
        },
    }

    acceptStructWithNext[int](iterable) // error is here

}
登入後複製

我收到此編譯錯誤:

<code>
Cannot use 'iterable' (type Iterable[int]) as the type struct {...}
</code>
登入後複製

我認為結構類型應該允許這種類型的事情 - 我哪裡出錯了?

解決方法

是的,但是 Go 沒有「結構類型」。在某種程度上,結構類型的好處可以透過介面的隱式滿足規則來獲得。但這僅適用於介面

請參閱https://www.php.cn/link/2a2f98d3597419498e4d734d8c2dd106

假設 Go 會有像教科書一樣的結構類型結構類型。

以上是不能使用 struct 作為類型 struct {...}的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!