کلیدواژه self (self Keyword)
«self» یعنی ارجاع به همین شیء یا همین نوع. با «self» نام ها را تفکیک می کنیم. همچنین، داخل متدهای نوع، به خود نوع اشاره می کنیم. مثل وقتی می گویی «منِ خودم».
تفکیک نام ها با self
«تفکیک (Disambiguation)» یعنی روشن کردن دو چیز هم نام. وقتی پارامتر و ویژگی همنام اند، با «self» مشخص می کنیم کدام ویژگیِ شیء است.
struct User {
var name: String;
init(name: String) {
self.name = name;
}
}
class Counter {
var value: Int = 0;
func inc() {
self.value += 1;
}
class func resetAll() {
print(Self.self);
}
}
نکته: در متدهای نوع، از Self برای اشاره به نوع استفاده می شود. این کار فهم کد را ساده می کند.
self در متدهای تغییر دهنده (mutating)
«تغییر دهنده (Mutating)» یعنی متدی که مقدار ساختار را عوض می کند. باز هم «self» کمک می کند تفاوت پارامتر و ویژگی روشن بماند.
struct Counter {
var value: Int = 0;
mutating func add(_ value: Int) {
self.value += value;
}
}
var c: Counter = Counter();
c.add(3);
print(c.value);
لینک های مرتبط داخلی
برای دیدن تفاوت متدهای نوع، به متدهای کلاس برو. همچنین، ارث بری را در ارث بری مرور کن. اگر نیاز داشتی، همین صفحه کلیدواژه self را ذخیره کن.
جمع بندی سریع
- self یعنی «این شیء» یا «این نوع».
- برای تفکیک نام ها از self استفاده کن.
- در متدهای نوع، از Self برای اشاره به نوع بهره ببر.
- در متدهای mutating، self شفافیت می آورد.