ساختارها (Structs)
«ساختارها در سوئیفت» یا «Structs» نوع های مقداری هستند. «نوع مقداری (Value Type)» یعنی هنگام کپی یا ارسال، یک نسخه مستقل می سازند. بنابراین تغییر روی کپی، اصل را عوض نمی کند. این ویژگی برای داده های کوچک و ایمن عالی است.
ساختارها در سوئیفت چیست؟
ساختار «ویژگی (Property)» و «متد (Method)» دارد. همچنین معمولاً «سازنده عضو به عضو (Memberwise Initializer)» می گیرد؛ یعنی با نام فیلدها مقداردهی می کنی.
تعریف یک Struct و کپی مقداری
یک نقطه بساز. سپس از روی آن کپی بگیر. بعد مقدار کپی را تغییر بده و تفاوت را ببین. مثل این است که از برگه دفترت فتوکپی بگیری؛ خط روی کپی، دفتر اصلی را تغییر نمی دهد.
struct Point {
var x: Int;
var y: Int;
}
var p1 = Point(x: 1, y: 2);
var p2 = p1;
// p2 یک کپی مستقل است
p2.x = 10;
نکته: چون Struct مقداری است، تغییر p2 روی p1 اثر ندارد. این رفتار در آرایه ها و دیکشنری ها نیز دیده می شود.
گام های تمرینی
- یک Struct به نام
Studentبا نام و نمره بساز. - با سازنده عضو به عضو، یک نمونه ایجاد کن.
- از نمونه کپی بگیر و نمره کپی را تغییر بده.
- نتیجه را چاپ کن و استقلال کپی را بررسی کن.
ادامه مسیر با لینک های داخلی
برای مقایسه دقیق، صفحه تفاوت کلاس و ساختار را ببین. همچنین اگر با کلاس ها آشنایی نداری، به کلاس ها/اشیا سر بزن.
جمع بندی سریع
- Struct نوع مقداری است و کپی مستقل می سازد.
- سازنده عضو به عضو مقداردهی را ساده می کند.
- برای داده های سبک و ایمن عالی است.
- تفاوتش با کلاس را حتماً مقایسه کن.