ما الفرق بين الدوال/الخصائص static و class في Swift؟
مرحبًا بالجميع! أنا أتعلم Swift ولا أستطيع فهم الفرق بين الكلمتين المفتاحيتين `static` و `class` عندما نعلن عن دوال أو خصائص داخل class. في التوثيق مكتوب أن كلاهما يشير إلى النوع نفسه وليس إلى instance، لكن ما الفرق إذًا؟
على سبيل المثال، لدي هذا الكود:
```swift
class MyClass {
static var staticProperty = "خاصية ثابتة"
class var classProperty: String {
return "خاصية صنفية"
}
static func staticMethod() {
print("دالة ثابتة")
}
class func classMethod() {
print("دالة صنفية")
}
}
```
أرى أن كلاً من `static` و `class` يسمحان باستدعاء الدوال دون إنشاء instance من class: `MyClass.staticMethod()` و `MyClass.classMethod()`. لكن لماذا إذًا توجد كلمتان مفتاحيتان مختلفتان؟ في أي الحالات يجب استخدام `static` وأيها `class`؟
ما يربكني بشكل خاص هو أنه في الهياكل والتعدادات يمكن استخدام `static` فقط، بينما في class