برش های آرایه (Array Slices)
اینجا با «برش آرایه (Array Slice)» آشنا می شوی. برش یعنی دیدن بخشی از آرایه، نه کپی آن. بنابراین، تغییرِ برش، روی آرایه اصلی هم اثر دارد. مثل بریدن کیک با چاقو؛ تکه جداست، اما هنوز از همان کیک است.
ساخت برش با بازه ها
برای ساخت برش از «بازه (Range)» استفاده کن. بازه نیمه باز، کران پایین را شامل می کند و کران بالا را حذف می کند. اگر ذخیره مستقل می خواهی، برش را به Array تبدیل کن.
let nums = [10, 20, 30, 40, 50]
let middle = nums[1...3] // ArraySlice<Int>
print(middle) // [20, 30, 40]
let copy = Array(middle) // Array<Int>
print(copy)
بازه نیمه باز
برای حذف کران بالا از عملگر نیمه باز استفاده کن. این روش، عنصرِ آخر بازه را برنمی گرداند و برای انتخاب محدوده دقیق عالی است.
let nums = [10, 20, 30, 40, 50]
let slice = nums[1..<3] // indices 1 and 2
print(slice) // [20, 30]
نکته: برش ها اندیس های اصلی را نگه می دارند. برای اندیس از صفر، آن را به Array تبدیل کن.
برش های یک طرفه
با بازه یک طرفه از شروع تا جایی، یا از جایی تا پایان را می بُری. این حالت خواندن از ابتدا یا ادامه آرایه را راحت می کند.
let arr = [0, 1, 2, 3, 4]
print(arr[...2]) // first three elements (0...2)
print(arr[2...]) // from index 2 to the end
گام های تمرینی
- یک آرایه نمره بساز و بخش میانی را برش بده.
- برش را به
Arrayتبدیل کن و چاپ کن. - با بازه یک طرفه از اندیس 2 تا آخر را بگیر.
برای مرور نحوه پیمایش، صفحه حلقه روی آرایه را ببین. همچنین برای مقدمات آرایه ها، به آرایه ها مراجعه کن. این لینک با برش های آرایه هم دسترسی سریع می دهد.
جمع بندی سریع
- برش، کپیِ آرایه نیست.
- تغییر برش، اصل را عوض می کند.
- برای کپی مستقل، Array بساز.
- بازه نیمه باز، کران بالا ندارد.
- بازه یک طرفه، شروع یا پایان آزاد دارد.