Category

Как передать функцию в функцию golang

A

Administrator

by admin , in category: Discussion , a year ago

В Go передача функций в качестве аргументов в другие функции осуществляется с использованием типа функции. Вот пример того, как это можно сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package main


import "fmt"


// Функция, которая принимает другую функцию в качестве аргумента
func processFunc(x int, f func(int) int) int {
    return f(x)
}


// Пример функции, которая будет передана в качестве аргумента
func square(x int) int {
    return x * x
}


func main() {
    // Вызываем processFunc, передавая square в качестве аргумента
    result := processFunc(5, square)
    fmt.Println(result) // Выведет: 25
}

В этом примере функция processFunc принимает два аргумента: x (целое число) и функцию f, которая принимает целое число и возвращает целое число. Затем она вызывает эту переданную функцию f с аргументом x и возвращает результат.

В функции main мы передаем функцию square в качестве аргумента функции processFunc. Функция square просто возвращает квадрат переданного ей числа. Результатом будет квадрат числа 5, то есть 25.

Это лишь один из способов передачи функций в Go. Вы также можете использовать анонимные функции или функциональные типы для более сложных случаев.

no answers