Heim >Backend-Entwicklung >Golang >Was ist der Unterschied zwischen den Zugriffsbeschränkungen von Golang-Methoden und -Funktionen?
Zugriffskontrolle in Go wird durch Namenspräfixzeichen angegeben: Methodenzugriffskontrolle: öffentlich (Großbuchstaben): zugänglich für alle Pakete privat (Kleinbuchstaben): zugänglich nur für das Paket, in dem sie definiert ist Funktionszugriffskontrolle: öffentlich (Großbuchstaben): zugänglich für alle Pakete Paket (Kleinbuchstaben): Nur für das Paket zugänglich, in dem es definiert ist
Zugriffsbeschränkungen für Methoden und Funktionen in Go
In der Go-Sprache gelten folgende Zugriffsberechtigungen: durch die Präfixzeichen ihrer Namen bestimmt.
Methodenzugriffskontrolle
Methoden sind Funktionen, die dem Strukturtyp zugeordnet sind. Ihre Präfixzeichen lauten wie folgt:
public
(Großbuchstaben): in allen Paketen zugänglich. 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
private
(Kleinbuchstabe): Nur innerhalb des Pakets zugänglich, das es definiert.
package main import ( "fmt" "customer" ) func main() { c := customer.Customer{ firstName: "John", lastName: "Doe", } fullName := c.GetFullName() fmt.Println(fullName) // 输出:John Doe }🎜🎜Funktionszugriffskontrolle🎜🎜🎜Ähnlich wie bei Methoden bestimmen auch die Präfixzeichen von Funktionen ihre Zugriffsrechte: 🎜🎜🎜
public
( Großbuchstaben): In allen Paketen verfügbar. 🎜package
(Kleinbuchstabe): Nur innerhalb des Pakets zugänglich, in dem es definiert ist. 🎜🎜Beispiel: 🎜🎜rrreee🎜🎜Praktischer Fall🎜🎜🎜Angenommen, wir haben ein Paket customer
, das eine Customer
-Struktur und eine definiert öffentliche Methode GetFullName
: 🎜rrreee🎜In einem anderen Paket main
können wir Customer
aus dem Paketcode customer
verwenden Typ und GetFullName
-Methode: 🎜rrreeeDas obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen den Zugriffsbeschränkungen von Golang-Methoden und -Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!