در این آموزش نحوه کار با آرایه ها در سویفت را یادمیگیریم.
چگونه آرایه ها را در سویفت تعریف کنیم
در مقاله تعریف رشته ها در Swift به تعریف تفاوت var و let پرداختیم . در این مقاله در باره سایر متغییر ها در سویفت صحبت خواهیم کرد. اما پیش از آنکه بسراغ مباحث جدید برویم نکاتی را یادآور شوم.
- سویفت مانند همه نرم افزار های برنامه نویسی دیگر اجازه استفاده از عبارت Var و let و سایر عبارات سیستمی را در نام متغییر نخواهد داد
- شما در سویفت امکان تعریف نام متغییر یونیکد را دارید ولی انجام اینکار را پیشنهاد نمی دهم ، مخصوصا اگر بخواهید از نام های فارسی برای نام متغییر استفاده کنید.
- شما متوانید عباراتی مانند π را در نام متغییر بکارببرید.
- اگر متغییری را تعریف و بکار برده اید دیگر امکان تغییر نوع آن وجود ندارد.
در فصل های آتی بنابر الزامات پروژه درباره نامگذاری متغییر ها بیشتر بحث خواهیم کرد.
آرایه ها در سویفت
آرایه ها برای تولید نرم افزارهای حرفه ای بسیار اهمیت دارند. بر روی ایجاد و بکارگیری آنها بسیار تمرین کنید.
- var shoppingList = ["catfish", "water", "tulips", "blue paint"]
- shoppingList[1] = "bottle of water"
-
- var occupations = [
- "Malcolm": "Captain",
- "Kaylee": "Mechanic",
- ]
- occupations["Jayne"] = "Public Relations"
توضیح مترجم: در قسمت اول ما یک متغییر به نام shoppingList ایجاد کرده و درون آن آرایه های ["catfish", "water", "tulips", "blue paint"] را قرار داده ایم . برای تعریف آرایه نام آرایه را درون براکت می نویسیم. اگر بخواهید میتوانید نوع محتوای آرایه را مشخص کنید به این مثال توجه کنید:
var numbers: [Int] = [1, 2, 3, 4, 5, 6]
در این حالت نوع آرایه عدد صحیح در نظر گرفته میشود. توجه داشته باشید که اگر کاربر مقادیر آرایه را وارد می کند. حتما نوع داده وارد شده کاربر را به نوع آرایه محدود کنید.
برای ایجاد یک آرایه تهی از این دستورات استفاده کنید:
- let emptyArray = [String]()
- let emptyDictionary = [String: Float]()
همانطور که میبینید میتواند با دستورات بالا هر نوع آرایه ای را خالی کنید. در برخی منابع این کار به این صورت انجام شده است:
var firstNames: [String] = []
آموزش سویفت خود شرکت اپل دو روش اول را تائید کرده است. برای اینکه یک آرایه تهی ایجاد کنید. می توانید از این دستورات هم استفاده کنید:
var myArray = [Double]()
var myDoubles = [Double](count: 5, repeatedValue: 2.0)
هر دو دستور بالا آرایه ای با اعداد اعشاری ایجاد می کنند، که فاقد عضو میباشند.
قبل از توضیح بعدی باید یک نکته در باره سویفت را یاداورشویم.
نکته ؛ توالی ها در سویفت:
یک توالی یا sequence لیستی از مقادیر است که شما میتوانید، به تک تک داده های آن دسترسی داشته باشید. از این لیست میتوان، در حلقه های For in استفاده کرد. آموزش حلقه ها را بزودی اضافه خواهیم کرد به این مثال نگاه کنید:
let oneTwoThree = 1...3
for number in oneTwoThree {
print(number)
}
// Prints "1"
// Prints "2"
// Prints "3"
به ادامه ارایه ها بازگردیم.
خواندن مقادیر در یک آرایه:
شما میتوانید با ذکر، نام متغییر تابع و شماره ایندکس و یا نام ایندکس آن، مقدار درون آرایه را بخوانید.
مثال:
var listOfNumbers = [1, 2, 3, 10, 100] // an array of numbers
listOfNumbers[0] // 1
listOfNumbers[1] // 2
listOfNumbers[2] // 3
listOfNumbers[3] // 10
listOfNumbers[4] // 100
//listOfNumbers[5]// this gives an error uncomment this line to see it
listOfNumbers[1...2] // [2, 3] this is a subsequence of the original array
- خط اول یک آرایه به نام listOfNumbers ایجاد کرده است .
- خط دوم تا ششم به ترتیب تک تک عناصر آرایه را به ذکر اندکس آنها فراخوانی کرده است.
- خط هفتم یک ایندکس که در آرایه نیست را فراخوانی کرده است . اگر اینکار را در نرم افزار انجام دهید، یک ارور به شما نمایش میدهد. برای همین این خط را بصورت کامنت در آورده ایم.
- در خط آخر ما از یک توالی برای خواندن اندکس استفاده کرده ایم . این توالی برای شما ایندکس ها را فراخوانی می کند، یعنی اینکه توالی از 1 شروع شده و ایندکس شماره یک دومین عدد در آرایه است که عدد 2 میباشد و سپس ایندکس 2 را فراخوانی می کند که عدد 3 در آرایه میباشد. سویفت می تواند بین اعداد " ، " بگذارد و آنها را از هم تشخیص دهد.
افزودن مقدار در سویفت
برای افزودن یک عنصر در آرایه باید از append استفاده کنید.
مثال متد append :
// create a empty array of integers
var numbers: [Int] = []
for i in 1...5 {
numbers.append(i)
print(numbers)
// [1]
// [1, 2]
// [1, 2, 3]
// [1, 2, 3, 4]
// [1, 2, 3, 4, 5]
}
print(numbers)
// [1, 2, 3, 4, 5]
به همین سادگی میتوان با یک دستور For یک آرایه را مقدار دهی کرد.
به خط بعد از For نگاه کنید، دستور numbers.append(i) به سویفت دستور میدهد که یک عدد به آرایه اضافه کند. این عدد از اعداد درون توالی خوانده می شود. بنابراین شما باید نام متغییر و سپس یک دات و متد append و درون پرانتز یک عدد را اضافه کنید . اگر نوع آرایه متنی باشد میتوانید به آن متن اضافه کنید.
نحوه افزودن عدد به قسمت خاصی از یک آرایه:
به مثال زیر نگاه کنید:
var numbers: [Int] = [1, 2, 3]
numbers.insert(0, at: 0) // numbers will be [0, 1, 2, 3]
numbers.insert(9, at: 1) // numbers will be [0, 9, 1, 2, 3]
در این مثال ما یک متغییر به نام Number ایجاد کرده و آرایه عددی به آن اختصاص داده ایم. در ادامه با دستور
عدد صفر به عنوان اولین آرایه در متغییر Number استفاده کرده ایم. بنابراین برای افزودن یک مقدار به قسمت خاصی از یک آرایه، ابتدا نام متغییر دارای آرایه را نوشته و سپس علامت دات را قرار داده و واژه insert را تایپ می کنیم. بعد از این متد در پرانتز آن عدد مدنظر و سپس یک ویرگول و سپس عبارت at: و بعد از آن شماره ایندکسی که میخواهیم عدد به آن اضافه شود را وارد می کنیم.
افزودن مقادیر یک آرایه به آرایه دیگر:
مثال:
var numbers: [Int] = [1, 2, 3]
numbers += [4, 5, 6] // numbers will be [1, 2, 3, 4, 5, 6]
// or just one value
numbers += [7] // numbers will be [1, 2, 3, 4, 5, 6, 7]
در این مثال ما با دستور numbers += [4, 5, 6] مقادیر موجود در این آرایه رابه مقادیر قبلی موجود در آرایه متغییر number اضافه کرده ایم . در خط آخر مشاهده می کنید که تنها یک عدد به متغییر اضافه شده است . در این صورت این عدد به عنوان آخرین مقدار در آرایه در نظر گرفته میشود .
حذف مقدار از آرایه:
مثال:
var numbers: [Int] = [1, 2, 3]
numbers.remove(at: 0) // numbers will be [2, 3]
برای حذف یک مقدار از متد remove استفاده می کنیم، این متد یک آروگومان بصورت at:index دریافت می کند و شماره ایندکس وارد شده را حذف می کند.
تغییر مقدار چند آرایه بصورت همزمان:
مثال :
var numbers: [Int] = [1, 2, 3, 4, 5, 6]
numbers[2...4] = [0, 0] // numbers will now be [1, 2, 0, 0, 6].
همانطور که میبینید ما با یک توالی ایندکس های 2 تا 4 را با دو عدد صفر جابجا کرد ایم . ایندکس 2 در آرایه عدد 3 ایندکس 3 عدد 4 و اندکس 4 عدد 5 است که بجای آن ها دو عدد صفر به آرایه اضافه شده است.
نکته : اولین عدد آرایه ایندکس صفر است.
نکته : برای کپی کردن تمامی مقادیر یک آرایه در یک متغییر از دستور زیر استفاده کنید:
var numbers = [1, 2, 3]
var otherNumbers = numbers // this will create a copy of numbers
یک نکته در مثال بالا :
بعد از انجام دستور بالا میتوانید محتوای متغییر number و otherNumbers را بصورت جداگانه ویرایش کنید. این مثال در ایجاد بکاپ از داده ها میتواند کاربرد زیادی داشته باشد.
با توسعه گوشی های اپل در بازار برنامه نویسی IOS برای تولید کنندگان محصولات و ارائه دهندگان خدمات اهمیت زیادی پیدا کرده است . شرکت برنامه نویسی سارگون با سالها تجربه و نمونه کار های موفق فراوان در این زمینه آماده همکاری با کلیه شرکت ها ، ارگان ها ، سازمان ها و فروشگاه ها میباشد.