Swift में static func और class func में क्या अंतर है?
नमस्ते! मैंने Swift सीखना शुरू किया है और मेथड्स घोषित करने के दो समान तरीकों पर ध्यान दिया: `static func` और `class func`। दोनों ही मेथड को टाइप स्तर पर कॉल करने की अनुमति देते हैं, न कि इंस्टेंस पर, लेकिन मैं समझ नहीं पा रहा हूँ कि मूलभूत अंतर क्या है।
उदाहरण के लिए, मैं लिख सकता हूँ:
```swift
class MyClass {
static func staticMethod() {
print("यह एक स्टैटिक मेथड है")
}
class func classMethod() {
print("यह एक क्लास मेथड है")
}
}
```
और उन्हें समान रूप से कॉल कर सकता हूँ: `MyClass.staticMethod()` और `MyClass.classMethod()`। परिणाम एक ही है – स्ट्रिंग्स प्रिंट होती हैं। तो दो अलग-अलग कीवर्ड्स की आवश्यकता क्यों है?
मैंने एक subclass बनाकर मेथड को override करने का प्रयास किया, लेकिन कंपाइलर त्रुटि देता है जब मैं `static func` को override करने की कोशिश करता हूँ। जबकि `class func` override करने की अनुमति देता है। क्या यही एकमात्र अंतर है? या कोई और बारीकियाँ भी हैं? हो सकता है कि प्रदर्शन में अंतर हो या मेमोरी में संग्रहीत होने के तरीके में?
कृपया विस्तार से समझाएँ कि प्रत्येक कीवर्ड किसके लिए है और कब उपयोग करना चाहिए।