با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. در بخش قبلی با سینتکس و کاربرد شمارنده ها آشنا شدیم و مشاهده کردیم که شمارنده ها برای دسته بندی و استفاده از مقادیر مشابه در طول برنامه مفید هستند، اما اگر بخواهیم متغیرهایی با مقادیر مشخص شده را در یک ساختار قرار داده و در طول برنامه از آن ها استفاده کنید، استفاده از Struct یا ساختارها در Swift گزینه ی مناسبی می باشد. در ادامه ی مباحث این بخش ما شما را با طرز استفاده از Struct در Swift آشنا خواهیم کرد.
در طول این آموزش شما با سینتکس و طرز استفاده از Struct در Swift آشنا خواهید شد.
1 2 3 4 5 6 7 | Structures are defined with a 'Struct' Keyword. struct nameStruct { Definition 1 Definition 2 --- Definition N } |
مثال زیر یک نمونه ی ساده از تعریف ساختارها در Swift می باشد:
1 2 3 4 5 | struct MarkStruct { var mark1: Int var mark2: Int var mark3: Int } |
برای دسترسی به اعضای یک ساختار باید از نام آن ساختار استفاده کرد.
فراخوانی و استفاده از ساختار نیز با کلمه کلیدی ‘let’ انجام می شود:
1 2 3 4 5 6 7 8 9 10 | struct studentMarks { var mark1 = 100 var mark2 = 200 var mark3 = 300 } let marks = studentMarks() print("Mark1 is \(marks.mark1)") print("Mark2 is \(marks.mark2)") print("Mark3 is \(marks.mark3)") |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 3 | Mark1 is 100 Mark2 is 200 Mark3 is 300 |
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct ! bStruct.mark = 97 print(aStruct.mark) print(bStruct.mark) |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 | 98 97 |
Swift 4 به شما اجازه می دهد تا با تعریف توابع و متدها در قالب ساختارها بتوانید دستکاری بیشتری روی مقادیر داشته باشید.
موارد استفاده از Struct در Swift :
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | struct markStruct { var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int) { self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 3 | 98 96 100 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | struct markStruct { var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int) { self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3) |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 3 | 34 42 13 |
در مثال فوق :
ساختار ‘markStruct’ ابتدا با اعضای mark1، mark2 و mark3 تعریف شده است.
حالا متغیرهای کلاسهای عضو برای مقدار عدد صحیح نگهداری می شوند.
سپس یک کپی از اعضای ساختار با کلمه کلیدی ‘self’ ایجاد می شود.
در کد اصلی برنامه مقادیر ۳۴, ۴۲, ۱۳ به اعضای ساختار (mark1، mark2 و mark3) نسبت داده می شود.
در نهایت نتیجه فراخوانی مقادیر هر یک از اعضا همان عدد ارسال شده به هر عضو است.
ساختارها در Swift نسبت به شمارنده ها کامل تر و کاربردی تر بوده و برای تعریف و استفاده از متغیرهایی با مقادیر مختلف و استفاده از آن ها در طول برنامه و همچنین موارد مشابه استفاده می شوند.