Maison > développement back-end > Golang > le corps du texte

Quelle est la différence entre les restrictions d'accès des méthodes et fonctions Golang ?

王林
Libérer: 2024-04-26 15:12:02
original
456 Les gens l'ont consulté

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

golang 方法和函数的访问限制有什么区别?

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() {
    // ...
}
Copier après la connexion

函数访问控制

与方法类似,函数的前缀字符也决定了它们的访问权限:

  • public(大写字母):在所有包中都可以访问。
  • package(小写字母):仅在定义它的包中可以访问。

示例:

// public 函数
func PublicFunction() {
    // ...
}

// package 函数
func packageFunction() {
    // ...
}
Copier après la connexion

实战案例

假设我们有一个包 customer,其中定义了一个 Customer 结构体和一个公共方法 GetFullName

package customer

type Customer struct {
    firstName string
    lastName string
}

// public 方法
func (c Customer) GetFullName() string {
    return c.firstName + " " + c.lastName
}
Copier après la connexion

在另一个包 main 中,我们可以使用 customer 包中的 Customer 类型和 GetFullNameprivate (lettre minuscule) : accessible uniquement au sein du package qui le définit.

🎜Exemple : 🎜🎜
package main

import (
    "fmt"
    "customer"
)

func main() {
    c := customer.Customer{
        firstName: "John",
        lastName: "Doe",
    }
    
    fullName := c.GetFullName()
    fmt.Println(fullName) // 输出:John Doe
}
Copier après la connexion
🎜🎜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 : 🎜rrreee

Ce 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!