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

Quelle est la méthode de définition des fonctions anonymes en langage Go ?

青灯夜游
Libérer: 2023-01-06 19:37:13
original
3795 Les gens l'ont consulté

La méthode de définition de fonction anonyme dans le langage Go est "func (liste de paramètres) (liste de paramètres de retour) {corps de fonction}". En fait, la définition d'une fonction anonyme est une définition de fonction ordinaire sans nom. Une fonction anonyme peut être entièrement considérée comme un type, peut être affectée directement, peut être affectée à une variable, peut être utilisée comme paramètre réel ou valeur de retour et, bien sûr, peut également être appelée directement.

Quelle est la méthode de définition des fonctions anonymes en langage Go ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, GO version 1.18, ordinateur Dell G3.

Le langage Go prend en charge les fonctions anonymes, c'est-à-dire que vous définissez une fonction lorsque vous avez besoin de l'utiliser. Les fonctions anonymes n'ont pas de noms de fonction, seuls les corps de fonction peuvent être attribués en tant que type aux variables de type de fonction. souvent transmis sous forme de variables. Ceci est similaire à la fonction de rappel du langage C. La différence est que le langage Go prend en charge la définition de fonctions anonymes dans le code à tout moment.

La fonction anonyme fait référence à une méthode d'implémentation de fonction qui ne nécessite pas la définition d'un nom de fonction. Elle consiste en une déclaration de fonction et un corps de fonction sans nom de fonction. Ce qui suit est une introduction à la façon de définir une fonction anonyme.

Définir une fonction anonyme

Le format de définition d'une fonction anonyme est le suivant :

func(参数列表)(返回参数列表){
    函数体
}
Copier après la connexion

La définition d'une fonction anonyme est une définition de fonction ordinaire sans nom.

Utilisation de base

La fonction anonyme peut être considérée comme un type, peut être directement affectée, peut être affectée à une variable, peut être utilisée comme paramètre réel ou valeur de retour, bien sûr, peut également être appelée directement

1 ) Appel de fonctions anonymes lors de la définition

Les fonctions anonymes peuvent être appelées après déclaration, par exemple :

func(data int) {
    fmt.Println("hello", data)
}(100)
Copier après la connexion

Notez le (100) après la ligne 3}, indiquant que la fonction anonyme est appelée et que le paramètre passé est 100.

2) Attribuer des fonctions anonymes à des variables

Les fonctions anonymes peuvent se voir attribuer des valeurs, par exemple :

// 将匿名函数体保存到f()中
f := func(data int) {
    fmt.Println("hello", data)
}
// 使用f()调用
f(100)
Copier après la connexion

Les fonctions anonymes sont très polyvalentes et peuvent être facilement enregistrées dans divers conteneurs pour implémenter des rappels. Encapsulation des fonctions et des opérations.

Où utiliser les fonctions anonymes

Fonction de rappel

Pourquoi devons-nous utiliser les fonctions de rappel? Analysons-le. A est la fonction principale et B est transmis à la fonction principale en tant que paramètre. Nous pouvons utiliser l'exemple ci-dessus. Voir, lorsque nous avons défini la fonction principale, nous avons uniquement défini les paramètres et le type de valeur de retour de la fonction B. Tant que la fonction B répond au type que nous avons défini, la fonction A peut donc la gérer en utilisant le rappel. La fonction nous permet d'être plus polyvalent. En termes simples, la fonction main fournit une interface, et toute fonction conforme aux règles de cette interface peut être utilisée.

type Callback func(a, b int) int

// 提供接口,外部随便怎么搞,只要符合规则就行
func api(x,y int, callback Callback) int {
    return callback(x, y)
}

// 回调函数,只要满足传入参数类型为int
// 并且返回值类型也是int就都可以
func add(a, b int) int {
    return a + b
}
Copier après la connexion

Closure

Qu'est-ce qu'une fermeture ? Une fermeture est une entité composée d'une fonction et de son environnement de référence associé.

func add() func(int) int {
    var b int
    return func(a int) int {
        b = b + a
        return b
    }
}

var f = add()
Copier après la connexion

Voici une fermeture. Utilisez des fonctions anonymes à l'intérieur de la fonction pour gérer tout ce qui concerne les variables

[Recommandations associées :

Tutoriel vidéo Go

, Enseignement de la programmation]

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