Avatar ·

Que signifient les parenthèses avant le nom de la fonction en Go ?

Bonjour à tous ! J'ai commencé à apprendre Go récemment, et la syntaxe de déclaration des fonctions me déroute beaucoup. Je suis habitué à Python, où tout est simple : `def func_name(args):`. Mais en Go, je vois des constructions étranges. Par exemple, je suis tombé sur ce code : ```go type Rectangle struct { Width float64 Height float64 } func (r Rectangle) Area() float64 { return r.Width * r.Height } ``` Qu'est-ce que ce `(r Rectangle)` avant le nom de la fonction `Area` ? Je pensais que les paramètres s'écrivaient entre parenthèses après le nom de la fonction, comme dans d'autres langages. Mais ici, ils sont avant le nom. Est-ce une syntaxe spéciale ? J'ai essayé d'écrire simplement `func Area(r Rectangle) float64` — cela fonctionne, mais alors je ne peux pas appeler la méthode comme `rect.Area()`, seulement `Area(rect)`. Quelle est la différence ? Quand faut-il utiliser les parenthèses avant le nom, et quand après ? Et qu'est-ce qu'un "receiver" (récepteur) ? J'ai entendu ce terme, mais je ne comprends pas à quoi il sert. Expliquez-moi, s'il vous plaît, comme à un débutant. Merci d'avance !