Kann man Funktionen als Parameter in Go übergeben?
Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und habe eine Frage. Ich bin Sprachen gewohnt, in denen Funktionen als Argumente an andere Funktionen übergeben werden können (z.B. in JavaScript oder Python). Aber in Go bin ich mir nicht sicher, ob das möglich ist.
Ich habe versucht, einen einfachen Taschenrechner zu schreiben, der eine Operation (Addition, Subtraktion) als Parameter akzeptiert, aber es hat nicht geklappt. Hier ist, was ich versucht habe:
```go
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func subtract(a, b int) int {
return a - b
}
func calculate(a, b int, op func(int, int) int) int {
return op(a, b)
}
func main() {
result := calculate(10, 5, add)
fmt.Println(result)
}
```
Der Code kompiliert und funktioniert, aber ich bin mir nicht sicher, ob das die richtige Syntax ist. Warum muss man `func(int, int) int` schreiben? Ist das irgendeine Magie? Und kann man Funktionen mit unterschiedlichen Signaturen übergeben? Zum Beispiel eine Funktion, die drei Argumente akzeptiert?
Bitte erklärt mir, wie das in Go funktioniert und ob es