Was bedeuten die Klammern vor dem Funktionsnamen in Go?
Hallo zusammen! Ich habe vor kurzem angefangen, Go zu lernen, und die Syntax der Funktionsdeklaration verwirrt mich sehr. Ich bin Python gewohnt, wo alles einfach ist: `def func_name(args):`. Aber in Go sehe ich seltsame Konstrukte.
Zum Beispiel bin ich auf diesen Code gestoßen:
```go
type Rectangle struct {
Width float64
Height float64
}
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
```
Was ist dieses `(r Rectangle)` vor dem Funktionsnamen `Area`? Ich dachte, Parameter werden in runden Klammern nach dem Funktionsnamen geschrieben, wie in anderen Sprachen. Aber hier stehen sie irgendwie vor dem Namen. Ist das eine spezielle Syntax?
Ich habe versucht, einfach `func Area(r Rectangle) float64` zu schreiben – das funktioniert, aber dann kann ich die Methode nicht als `rect.Area()` aufrufen, sondern nur als `Area(rect)`. Was ist der Unterschied? Wann sollte man welche verwenden?