Go のアクセス制御は、名前の接頭辞文字によって指定されます。 メソッド アクセス制御: public (大文字): すべてのパッケージにアクセス可能 private (小文字): それを定義するパッケージのみにアクセス可能 関数アクセス制御: public (大文字): allパッケージ アクセス可能なパッケージ (小文字): それを定義するパッケージのみがアクセス可能です
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 }
別のパッケージ 以上がgolangのメソッドと関数のアクセス制限の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。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
}