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(...) ... և փոխանցել ցանկալի ֆունկցիան։