در جلسات قبل در مورد انواع داده ها مثل اعداد صحیح (int) اعداد اعشاری (float) و رشته ها (string) در سوئیفت صحبت کردیم. در این جلسه میخواهیم در مورد یک از مهم ترین داده ها یعنی آرایه ها صحبت کنیم، با تعریف آرایه ها شروع میکنیم.
فرض کنید میخواهید تعداد بسیار زیادی از یک نوع داده را ذخیره کنید، در اینصورت شما نمیتوانید برای هر کدام از این داده ها یک متغیر جدید ایجاد کنید، چون برای مثال ممکن است نیاز به ذخیره کردن هزار رشته داشته باشیم، در این مواقع میتوانیم از آرایه ها استفاده کنیم.
برای تعریف یک آرایه جدید میتوانیم آن را به شکل زیر ایجاد کنیم.
let swift = "سوئیفت"
let php = "پی اچ پی"
let js = "جاوا اسکریپت"
let SwiftAcademy = [swift, php, js]
همچنین شما این امکان را دارید که مقدار خانه های آرایه را نیز درون آرایه تعریف کنید.
let SwiftAcademy = ["جاوا اسکریپت", "سوئیفت", "پی اچ پی"]
برای ساخت یک آرایه خالی با نوع مشخص، مثلا آرایه ای از رشته ها یا اعداد صحیح، میتوان به شکل زیر آن را تعریف کرد.
var SwiftAcademy = [Int]()
اما اگر نمیخواهید نوع آرایه را مشخص کنید یا خانه های آرایه از نوع های متفاوت هستند، میتوانید از حالت Any به شکل زیر استفاده کنید.
var SwiftAcademy = [Any]()
نحوه دسترسی به خانه های آرایه بسیار راحت است شما میتوانید به شکل زیر با نوشتن اسم آرایه و سپس براکت باز و بسته و قرار دادن شماره خانه مورد نظر از آرایه، به خانه مورد نظر دسترسی پیدا کنید.
لازم بذکر هست که آرایه ها در سوئیفت با اندیس 0 شروع میشوند و اگر تعداد خانه های آرایه برابر با n باشد خانه آخر آرایهبرابر است با .n-1
let someArray = [45, 92, 13]
print(someArray[0]) // 45
print(someArray[1]) // 92
print(someArray[2]) // 13
دو روش کلی برای اضافه کردن داده جدید به آرایه وجود دارد.
در این روش شما یک خانه جدید به انتهای آرایه اضافه میکنید.
var SwiftAcademy =[7, 9, 11, 26, 13]
SwiftAcademy.append(8)
print(SwiftAcademy) // [7, 9, 11, 26, 13, 8]
از این روش برای اضافه کردن خانه جدید در یک اندیس مشخص استفاده میشود.
var SwiftAcademy = [7, 9, 11, 26, 13]
SwiftAcademy.insert(8, at: 0)
print(SwiftAcademy) // [8, 7, 9, 11, 26, 13]
دقت کنید که از روش زیر برای اضافه کردن خانه جدید به آرایه استفاده نکنید، چون اگر اندیس خانه ای که قرار میدهید از قبل ایجاد نشده باشد شما با خطا و ارور مواجه میشوید.
شما میتوانید با استفاده از دستور remove و قرار دادن اندیس مورد نظر، آن خانه از آرایه را حذف کنید، نکته بسیار مهم این است که همانطور که در معرفی انواع متغیر ها گفتیم ما امکان تغیر متغیر هایی از نوع let را نداریم پس حتما آرایه خود را با استفاده از کلمه کلیدی var تعریف کنید
var SwiftAcademy = [7, 9, 11, 8]
SwiftAcademy.remove(at: 2)
print(SwiftAcademy) // [7, 9, 8]
توابع پرکاربرد دیگر برای حذف کردن خانه های آرایه:
var someArray = [9, 20, 11, 8]
SwiftAcademy.removeFirst()
print(someArray) // [20, 11, 8]
varsomeArray = [7, 9, 20, 11, 8]
SwiftAcademy.removeLast()
print(someArray) // [7, 9, 20, 11]
var someArray = [7, 9, 20, 11, 8]
SwiftAcademy.removeAll()
print(someArray)// [ ]
برای آپدیت کردن یک خانه هم میتوانید به روش زیر عمل کنید
var someArray = [17, 25]
someArray[0] = 1
print(someArray) // [1, 25]
شما میتوانید با نوشتن اسم متغیر و گذاشته نقطه و سپس دستور count تعداد خانه های یک آرایه در سوئیفت را بدست آورید. نکته ای که لازم است بهش توجه کنید این است که اندیس خانه آخر از آرایه برابر است با تعداد خونه های آرایه منهای یک، زیرا خانه اول از آرایه با اندیس صفر آغاز میشود.
let SwiftAcademy = [7, 9, 11, 26, 13]
print(SwiftAcademy.count) // 5
print(SwiftAcademy[SwiftAcademy.count - 1]) // 13
همچنین برای ادغام دو آرایه میتوانید از دستور زیر استفاده کنید
let ios = ["آیپد", "آیفون"]
let mac = ["مک بوک ایر", "مک بوک پرو"]
let apple = ios + mac
print(apple) // ["آیپد","آیفون","مک بوک ایر","مک بوک پرو"]
اگه دوست دارید خیلی حرفه ای بشید این هم چند تا تابع خفن که دیگه چیزی جا نمونده باشه...
someArray.sort()
someArray.shuffle()
someArray.reverse()
someArray.contains()
someArray.isEmpty
نظری ندارم