Go 中的存取控制透過名稱前綴字元規定:方法存取控制:public(大寫):所有套件可存取private(小寫):僅定義它的套件可存取函數存取控制:public(大寫):所有套件可存取package(小寫):僅定義它的套件可存取
#Go 中方法和函數的存取限制
在Go 語言中,變數、方法和函數的存取權限由其名稱的前綴字元決定。
方法存取控制
方法是與結構體類型關聯的函數。它們的前綴字元如下:
public
(大寫字母):在所有套件中都可以存取。 private
(小寫字母):僅在定義它的套件中可以存取。 範例:
type Person struct { name string } // public 方法 func (p Person) PublicMethod() { // ... } // private 方法 func (p Person) privateMethod() { // ... }
函數存取控制
與方法類似,函數的前綴字元也決定了它們的存取權限:
public
(大寫字母):在所有套件中都可以存取。 package
(小寫字母):僅在定義它的套件中可以存取。 範例:
// public 函数 func PublicFunction() { // ... } // package 函数 func packageFunction() { // ... }
實戰案例
假設我們有一個套件customer
,其中定義了一個Customer
結構體和一個公共方法GetFullName
:
package customer type Customer struct { firstName string lastName string } // public 方法 func (c Customer) GetFullName() string { return c.firstName + " " + c.lastName }
在另一個套件main
中,我們可以使用customer
套件中的Customer
類型和GetFullName
方法:
package main import ( "fmt" "customer" ) func main() { c := customer.Customer{ firstName: "John", lastName: "Doe", } fullName := c.GetFullName() fmt.Println(fullName) // 输出:John Doe }
以上是golang 方法和函數的存取限制有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!