Maison >développement back-end >Golang >tranche de fonction golang passée en paramètre

tranche de fonction golang passée en paramètre

WBOY
WBOYoriginal
2024-04-22 16:48:02767parcourir

Les tranches de fonctions en langage Go peuvent être transmises en tant que paramètres pour améliorer la flexibilité du code. La syntaxe est la suivante : func function(fn func([]int) []int, slice []int) []int, où la fonction reçoit la fonction slice fn et slice slice comme paramètres.

tranche de fonction golang passée en paramètre

Passer des tranches de fonction en tant que paramètres dans le langage Go

En langage Go, les fonctions peuvent être transmises en tant que paramètres à d'autres fonctions. Il s'agit d'une technique puissante qui rend votre code plus flexible et réutilisable.

Syntaxe

La syntaxe pour passer les tranches de fonction en tant que paramètres est la suivante :

func function(fn func([]int) []int, slice []int) []int

fonction doit recevoir les tranches de fonction fn et les tranches slice fonction en tant que paramètre. <code>func définit le type de tranche de fonction, qui reçoit une tranche entière de longueur N et renvoie une tranche entière de longueur M. function 是接收函数切片 fn 和切片 slice 作为参数的函数。func 定义了函数切片的类型,它接收一个长度为 N 的整数切片,并返回一个长度为 M 的整数切片。

实战案例

我们来看一个将函数切片作为参数传递的实战案例。假设我们有一个函数 apply

Cas pratique

Regardons un cas pratique de passage de tranches de fonction en tant que paramètres. Supposons que nous ayons une fonction apply qui prend une tranche de fonction et une tranche et applique chaque fonction de la tranche de fonction à chaque élément de la tranche. 🎜
package main

import "fmt"

func main() {
    // 定义函数切片
    fns := []func(int) int{
        func(i int) int { return i + 1 },
        func(i int) int { return i * 2 },
    }

    // 定义切片
    slice := []int{1, 2, 3}

    // 将函数切片和切片传递给 apply 函数
    result := apply(fns, slice)

    // 打印结果
    fmt.Println(result)
}

// apply 函数接收一个函数切片和一个切片,并对切片中的每个元素应用函数切片中的每个函数
func apply(fns []func(int) int, slice []int) []int {
    result := make([]int, len(slice))
    for i, v := range slice {
        for _, fn := range fns {
            result[i] = fn(v)
        }
    }
    return result
}
🎜🎜sortie🎜🎜
[]int{2, 4, 6}

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!

Déclaration:
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