در جلسات قبل در مورد انواع داده ها مثل اعداد صحیح (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,
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]
var
someArray
=
[7,
9,
20,
11,
8]
SwiftAcademy.removeLast()
print(someArray)
// [20, 11, 8]
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
نظری ندارم