با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش Swift را دنبال می کنند. عناصری مانند آرایه ها و شمارنده ها از مقادیر زیر مجموعه تشکیل شده اند، که دسترسی به هر یک از مقادیر زیر مجموعه ها در Swift با مقادیر ساده متفاوت است. برای اینگونه موارد باید با استفاده از شماره index مقدار و آیتم مورد نظر به آن دسترسی یافته و از آن استفاده کرد. در ساختارها و کلاس برای دسترسی به آیتم های زیر مجموعه باید از یک متد خاص استفاده کنید که در ادامه ی این مبحث چگونگی دسترسی به زیر مجموعه ها در Swift را با استفاده از متد مربوطه را توضیح داده ایم.
در ادامه ی این آموزش شما با چگونگی دسترسی به زیر مجموعه ها در Swift با استفاده از متد مربوطه آشنا خواهید شد.
برای دسترسی به آیتم های زیر مجموعه در برنامه اصلی باید از شماره index آن داخل مربع باز و بسته در برنامه اصلی استفاده کرد.
برای تعریف زیر مجموعه از کلمه کلیدی ‘subscript’ استفاده می شود.
سینتکس :
1 2 3 4 5 6 7 8 | subscript(index: Int) −> Int { get { // used for subscript value declarations } set(newValue) { // definitions are written here } } |
مثال ۱:
1 2 3 4 5 6 7 8 9 10 11 12 13 | struct subexample { let decrementer: Int subscript(index: Int) -> Int { return decrementer / index } } let division = subexample(decrementer: 100) print("The number is divisible by \(division[9]) times") print("The number is divisible by \(division[2]) times") print("The number is divisible by \(division[3]) times") print("The number is divisible by \(division[5]) times") print("The number is divisible by \(division[7]) times") |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 3 4 5 | The number is divisible by 11 times The number is divisible by 50 times The number is divisible by 33 times The number is divisible by 20 times The number is divisible by 14 times |
مثال ۲:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class daysofaweek { private var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "saturday"] subscript(index: Int) -> String { get { return days[index] } set(newValue) { self.days[index] = newValue } } } var p = daysofaweek() print(p[0]) print(p[1]) print(p[2]) print(p[3]) |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 2 3 4 | Sunday Monday Tuesday Wednesday |
پارامترهای زیر یک پارامتر ورودی چندگانه را می گیرند و این پارامترهای ورودی نیز به هر نوع داده تعلق دارند.
الگوی زیر نمی تواند مقادیر پیش فرض پارامتر را ارائه دهد یا از هر پارامتر درون خروجی استفاده کند.
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | struct Matrix { let rows: Int, columns: Int var print: [Double] init(rows: Int, columns: Int) { self.rows = rows self.columns = columns print = Array(count: rows * columns, repeatedValue: 0.0) } subscript(row: Int, column: Int) -> Double { get { return print[(row * columns) + column] } set { print[(row * columns) + column] = newValue } } } var mat = Matrix(rows: 3, columns: 3) mat[0,0] = 1.0 mat[0,1] = 2.0 mat[1,0] = 3.0 mat[1,1] = 5.0 print("\(mat[0,0])") |
نتیجه ی کامپایل و اجرای کد فوق به صورت زیر خواهد بود:
1 | 1.0 |
زیر مجموعه ها در Swift 4 از یک پارامتر برای اعلام پارامترهای چندگانه برای انواع داده مناسب پشتیبانی می کند.
این برنامه ساختار Matrix را به عنوان یک ماتریس آرایه ۲ × ۲ برای ذخیره داده های “دوگانه” می دهد.
نمونه جدید برای ماتریس با دادن ردیف و تعداد ستون به مقدار اولیه به صورت زیر نشان داده شده است:
1 | var mat = Matrix(rows: 3, columns: 3) |
مقادیر ماتریس را می توان با دادن مقادیر ردیف و ستون در زیرمجموعه تعریف کرد، که با کاما به ترتیب زیر نشان داده شده است:
1 2 3 4 | mat[0,0] = 1.0 mat[0,1] = 2.0 mat[1,0] = 3.0 mat[1,1] = 5.0 |
با توجه به اینکه در ساختارها و کلاس ها از عناصر حاوی زیر مجموعه از جمله شمارنده و انواع آرایه ها استفاده می شود، دسترسی به آیتم های این ساختارها با استفاده از سینتکس زیر مجموعه ها در Swift امکان پذیر است.