Avatar ·

Go का अजीब सिंटैक्स: फंक्शन नाम से पहले कोष्ठक का क्या मतलब है?

सभी को नमस्कार! मैंने Python और JavaScript के बाद अभी-अभी Go सीखना शुरू किया है, और मैं सिंटैक्स की एक विशेषता से भ्रमित हूँ। कोड में मैं अक्सर कुछ इस तरह देखता हूँ: ```go type Rectangle struct { Width float64 Height float64 } func (r Rectangle) Area() float64 { return r.Width * r.Height } ``` `Area` फंक्शन नाम से पहले `(r Rectangle)` कोष्ठक क्यों हैं? Python में मैं बस `def area(self):` लिखता। मैं समझता हूँ कि यह किसी तरह structs के methods से संबंधित है, लेकिन तर्क समझ नहीं पा रहा हूँ। यहाँ एक और उदाहरण है जिसने मुझे भ्रमित किया: ```go func (p *Person) SetName(name string) { p.Name = name } ``` कभी `(p *Person)` और कभी `(p Person)` क्यों लिखा जाता है? और अगर मैं ये कोष्ठक पूरी तरह हटा दूँ तो क्या होगा? उदाहरण के लिए: ```go func Area() float64 { return 0 } ``` यह भी काम करता है। इस सिंटैक्स का उपयोग कब करना चाहिए और कब नहीं? कृपया एक शुरुआतकर्ता की तरह समझाएँ। मुझे लगता है कि मैं Go की कोई मूलभूत अवधारणा छोड़ गया हूँ। पहले से धन्यवाद।