Maison >développement back-end >Golang >Quelle est la différence entre les restrictions d'accès des méthodes et fonctions Golang ?
Le contrôle d'accès dans Go est spécifié par des caractères de préfixe de nom : Contrôle d'accès à la méthode : public (majuscule) : accessible à tous les packages privé (minuscule) : accessible uniquement au package dans lequel il est défini Contrôle d'accès à la fonction : public (majuscule) : accessible à tous les packages package (minuscules) : accessible uniquement au package dans lequel il est défini
Restrictions d'accès aux méthodes et fonctions en Go
Dans le langage Go, les autorisations d'accès aux variables, méthodes et fonctions sont déterminé par les caractères préfixes de leurs noms.
Contrôle d'accès aux méthodes
Les méthodes sont des fonctions associées au type de structure. Leurs caractères de préfixe sont les suivants :
public
(lettres majuscules) : accessible dans tous les packages. 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
(lettre minuscule) : accessible uniquement au sein du package qui le définit.
package main import ( "fmt" "customer" ) func main() { c := customer.Customer{ firstName: "John", lastName: "Doe", } fullName := c.GetFullName() fmt.Println(fullName) // 输出:John Doe }🎜🎜Contrôle d'accès aux fonctions🎜🎜🎜Semblable aux méthodes, les caractères préfixes des fonctions déterminent également leurs droits d'accès : 🎜🎜🎜
public
( majuscules) : Accessible dans tous les forfaits. 🎜package
(lettre minuscule) : accessible uniquement au sein du package dans lequel il est défini. 🎜🎜Exemple : 🎜🎜rrreee🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons un package client
, qui définit une structure Client
et un méthode publique GetFullName
: 🎜rrreee🎜Dans un autre package main
, nous pouvons utiliser Customer
à partir du code du package customer
> tapez et méthode GetFullName
: 🎜rrreeeCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!