Peut-on passer des fonctions comme paramètres en Go ?
Bonjour à tous ! Je viens de commencer à apprendre Go et j'ai une question. Je suis habitué à des langages où les fonctions peuvent être passées comme arguments à d'autres fonctions (par exemple, en JavaScript ou Python). Mais en Go, je ne suis pas sûr que ce soit possible.
J'ai essayé d'écrire une simple calculatrice qui prendrait une opération (addition, soustraction) comme paramètre, mais je n'ai pas réussi. Voici ce que j'ai essayé :
```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)
}
```
Le code compile et fonctionne, mais je ne suis pas sûr que ce soit la bonne syntaxe. Pourquoi faut-il écrire `func(int, int) int` ? Est-ce une sorte de magie ? Et peut-on passer des fonctions avec des signatures différentes ? Par exemple, une fonction qui prend trois arguments ?
Dites-moi, s'il vous plaît, comment cela fonctionne en Go et y a-t-il