Heim >Backend-Entwicklung >Golang >Golang-Funktions-Slice als Parameter übergeben

Golang-Funktions-Slice als Parameter übergeben

WBOY
WBOYOriginal
2024-04-22 16:48:02755Durchsuche

Funktionsabschnitte in der Go-Sprache können als Parameter übergeben werden, um die Codeflexibilität zu erhöhen. Die Syntax lautet wie folgt: func function(fn func([]int) []int, Slice []int) []int, wobei die Funktion die Funktionen Slice Fn und Slice Slice als Parameter erhält.

Golang-Funktions-Slice als Parameter übergeben

Funktions-Slices als Parameter in der Go-Sprache übergeben

In der Go-Sprache können Funktionen als Parameter an andere Funktionen übergeben werden. Dies ist eine leistungsstarke Technik, die Ihren Code flexibler und wiederverwendbar macht.

Syntax

Die Syntax zum Übergeben von Funktions-Slices als Parameter lautet wie folgt:

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

function dient zum Empfangen von Funktions-Slices fn und Slices slice Funktion als Parameter. <code>func definiert den Typ des Funktionssegments, das ein ganzzahliges Segment der Länge N empfängt und ein ganzzahliges Segment der Länge M zurückgibt. function 是接收函数切片 fn 和切片 slice 作为参数的函数。func 定义了函数切片的类型,它接收一个长度为 N 的整数切片,并返回一个长度为 M 的整数切片。

实战案例

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

Praktischer Fall

Schauen wir uns einen praktischen Fall der Übergabe von Funktionsabschnitten als Parameter an. Angenommen, wir haben eine Funktion apply, die einen Funktions-Slice und einen Slice nimmt und jede Funktion im Funktions-Slice auf jedes Element im Slice anwendet. 🎜
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
}
🎜🎜Ausgabe🎜🎜
[]int{2, 4, 6}

Das obige ist der detaillierte Inhalt vonGolang-Funktions-Slice als Parameter übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn