首頁 > 後端開發 > Golang > 為什麼 Go 函數的名稱大寫為公共,而套件的名稱小寫為私有?

為什麼 Go 函數的名稱大寫為公共,而套件的名稱小寫為私有?

Mary-Kate Olsen
發布: 2024-11-26 15:26:12
原創
138 人瀏覽過

Why Are Go Functions Public with Uppercase Names but Packages Private with Lowercase Names?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板