Go 中的公共和私有存取修飾符:大寫和小寫混淆
從Delphi 或C 過渡到Go 時,了解規則管理存取修飾符可能具有挑戰性。特別令人困惑的是使用大小寫字母來表示公有和私有存取。
存取修飾符規則:
在 Go 中,公共存取是透過大寫來實現的函數或型別名稱。例如,名為 myFunc 的公用函數將會被寫成 func MyFunc()。
容器類別異常:
但是,在使用容器/列表等容器類別時,規則似乎被打破了。容器類型名稱List是大寫的,表示公共訪問,但是套件名稱container/list是小寫的。這種不一致可能會令人困惑。
解釋:
在 Go 中,包與類型不同。包名稱表示包代碼所在的檔案和目錄。套件名稱通常與套件路徑的最後部分相同,但情況並非總是如此。
套件的公共成員是透過大寫類型名稱存取的。在此範例中,container/list 是套件路徑,List 是公用類型名稱。小寫的 list 是套件的別名,允許您在程式碼中將其引用為 list。
因此, func GetFactors(value *int64) *list.List {...} 和l : = list.New() 都是有效的,因為List 是container/list 套件中的公用類型,而list 是該套件的別名。
以上是為什麼 Go 函數的名稱大寫為公共,而套件的名稱小寫為私有?的詳細內容。更多資訊請關注PHP中文網其他相關文章!