我有點陌生,從 C 背景開始,我真的想知道是否有可能實作這樣的目標。假設我有一個數學庫,我想讓一個命名空間成為另一個這樣的命名空間的孩子。
- 主包
- 數學包
- 矩陣包
- ...
我想這樣稱呼我的代碼;
math.matrix.CreateTranslation(mat4, 30, 50, 0)
有沒有辦法在go中實作這種行為?
uj5u.com熱心網友回復:
有沒有辦法在go中實作這種行為?
不,不是。
您可以匯入"module/math"然后執行math.SomeFunc. 或者您可以匯入"module/math/matrix"然后執行matrix.SomeOtherFunc. 這些被稱為“合格的識別符號”。
但是您不能匯入"module/math"or"module/math/matrix"然后使用嵌套的“合格識別符號” a la math.matrix.SomeOtherFunc。這不是規范的一部分。
從技術上講,可以執行以下操作:
math.Matrix.CreateTranslation(mat4, 30, 50, 0)
whereMatrix是包中的匯出變數,math其型別CreateTranslation在其方法集中具有方法,或者其型別是具有稱為函式欄位的結構型別。CreateTranslation
雖然有可能,但很明顯,它會試圖將一種組織模式強加于一種不支持它的語言。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424138.html
上一篇:Goroutines導致死鎖
下一篇:Golang切片追加例外
