Sobes.tech
Junior — Middle

Ինչպե՞ս կարող եք փոխանցել ֆունկցիան որպես արգումենտ՝ ներսում մյուս ֆունկցիայի մեջ կանչելու համար։

sobes.tech AI

Պատասխան AI-ից

Go-ում ֆունկցիաները առաջին կարգի արժեքներ են, այդ պատճառով դրանք կարող են փոխանցվել որպես արգումենտներ այլ ֆունկցիաների:

Օրինակ՝ ֆունկցիայի փոխանցում մյուս ֆունկցիային:

package main

import "fmt"

// Ֆունկցիա, որը ընդունում է այլ ֆունկցիա որպես արգումենտ
func applyOperation(a, b int, op func(int, int) int) int {
    return op(a, b)
}

func main() {
    sum := func(x, y int) int {
        return x + y
    }

    result := applyOperation(3, 4, sum)
    fmt.Println(result) // Տպում է 7
}

Այստեղ, applyOperation ընդունում է երկու թիվ և op անունով ֆունկցիա, որը սահմանում է գործողությունը այդ թվերի վրա։ main-ում մենք փոխանցում ենք անանուն գումարման ֆունկցիա։

Այսպիսով, Go-ում ֆունկցիա փոխանցելու համար բավական է նշել արգումենտի տիպը որպես func(...) ... և փոխանցել ցանկալի ֆունկցիան։