Seltsame Go-Syntax: Was bedeuten die Klammern vor dem Funktionsnamen?
Hallo zusammen! Ich habe gerade angefangen, Go nach Python und JavaScript zu lernen, und eine Besonderheit der Syntax verwirrt mich. Im Code sehe ich oft so etwas:\n\n```go\ntype Rectangle struct {\n Width float64\n Height float64\n}\n\nfunc (r Rectangle) Area() float64 {\n return r.Width * r.Height\n}\n```\n\nWarum stehen vor dem Funktionsnamen `Area` Klammern mit `(r Rectangle)`? In Python würde ich einfach `def area(self):` schreiben. Ich verstehe, dass es irgendwie mit Methoden von Structs zusammenhängt, aber ich kann die Logik nicht nachvollziehen.\n\nHier ist noch ein Beispiel, das mich verwirrt hat:\n\n```go\nfunc (p *Person) SetName(name string) {\n p.Name = name\n}\n```\n\nWarum schreibt man manchmal `(p *Person)` und manchmal `(p Person)`? Und was passiert, wenn ich diese Klammern ganz weglasse? Zum Beispiel:\n\n```go\nfunc Area() float64 {\n return 0\n}\n```\n\nIst das
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen