سویفت فارسی

Class یا Struct? مسئله این است

همانطور که می دانید در تمامی زبان های Object Oriented نظیر C++, C#, Java و … برای دسته بندی متغییر ها از Class استفاده می شود. استفاده از کلاس مزایای زیادی نظیر وراثت و قابل استفاده ی مجدد(reuse) از کد را برای ما فراهم می کند امامی تواند باعث بروز باگ های ناخواسته نیز شود. برا مثل تکه کد زیر را در نظر بگیرید:

let a = 5
if a >5 {
a = 6
}

مرور سریع بر زبان Swift

در این پست به مرور سریع دستور زبان Swift خواهیم پرداخت. این آموزش مناسب افرادی است که حداقل سابقه ی برنامه نویسی با یک زبان برنامه نویسی دیگر اعم از Java, Python, C و …  را دارند.

تعریف متغییر:

برای تعریف متغییر در زبان Swift  از دو کلید واژه ی let و var  استفاده می کنیم.

				
					let name : String = "Sina"
var age : Int = 32
				
			

اگر برای تعریف متغییر از کلید واژه ی let استفاده کنید زبان Swift به شما اجازه ی تغییر دادن مقدار متغییر ایجاد شده را نخواهد داد

				
					name = "Mina"     //Error
age = 14          //OK
				
			

هر چند تعیین نوع متغییر در هنگام تعریف آن در زبان Swift امری واجب است اما کامپایلر Swift در صورت امکان نوع متغییر شما را با توجه به مقدار اولیه آن متوجه خواهد شد. بنابراین می توان نوشت:

				
					let name = "Sina"
var age = 32
				
			

تعریف آرایه:

  برای ایجاد یک آرایه در Swift از [] استفاده می کنیم:

				
					let names : [String] = ["Melika" , "Behnam", "Sahar"]

				
			

دستوارت شرطی

دستورات شرطی در زبان Swift کاملا مشابه دیگر زبان های برنامه نویسی نظیر C و … است:

				
					if ( name == "Sina"){
    print("Hello, Sina")
else if (name == "Mina"){
    print("Hello, Mina")
}else{
    print("Hello, Stranger")
}
				
			

دستور guard:

این دستور در زبان Swift برای بررسی صحت یک شرط می باشد  اما با این تفاوت که دستور guard الزاما باید بلاک else داشته باشد و در بلاک else شما ملزم به return کردن از تابع هستید.

از این دستور می توان برای بررسی کردن حالت هایی که برای ادامه ی روند تابع الزامی است استفاده کرد. به عنوان مثال:

				
					guard age >= 18 else { 
    print("You are not an adult!")
    return
}
//...
//...
//...
				
			

حلقه های تکرار

زبان Swift از انواع حلقه های تکرار نظیر for, while, repeat-while پشتیبانی می کند

				
					//For 
for name in names { 
    print("name")
}
//While
while(count<=5){
    print(count)
    count += 1
}
//repeat-while (do-while)
repeat{
    print(count)
    count += 1
}while(count <= 5)
				
			
				
					for(var i=0 ; i <= names.count ; name += 1) {    //Error: not supported
    print(names[i])
}
				
			

برای دسترسی به اعضای یک آرایه با استفاده از اندیس می توانید به فرم زیر عمل کنید:

				
					for index in names.indices{
    print(names[index])
}
				
			

برای تکرار یک عمل به تعداد دفعات ثابت می توانید از دستور for به اینگونه استفاده کنید:

				
					for _ in  1...3 {
    print("hello")
}
//result:
//hello
//hello
//hello
				
			

توابع

برای تعریف تابع در Swift از کلمه ی کلیدی func استفاده می کنیم

				
					func sum(first : Int , second : Int) -> Int { 
    let result =  first + second
    return result
}

//..
let total = sum(first:5,second:10)
print(total)
// 15
				
			

شما می توانید دو نام متفاوت برای صدا زدن و متغییر ورودی تابع خود تعریف کنید. به عنوان مثال:

				
					func multiply(number first : Int , by second : Int ) -> Int { 
    let result = first * second
    return result
}

//...
let result = multiply(number:3,by:4)
print(result)
//12
				
			

همچنین شما می توانید با استفاده از _ کاربر را از نوشتن نام متغییر در هنگام صدا زدن تایع معاف کنید. مثال:

				
					func multiply( _ first : Int , by second : Int ) -> Int { 
    let result = first * second
    return result
}

//...
let result = multiply(3,by:4)         //OK
let result = multiply(first:3,by:4)   // Error
print(result)
//12
				
			

چرا زبان سویفت؟!

زبان Swift زبانی است مدرن، ساده، متن باز که به شما قابلیت برنامه نویسی بر بروی تمامی پلت فرم های مختلفی از جمله macOS, iOS , Linux , Windows را می دهد. هر چند این زبان بیشتر به منظور برنامه نویسی برای سیستم عامل های شرکت اپل مورد استفاده قرار می گیرد اما شما می توانید با استفاده از Swift برای دیگر سیستم عامل ها نیز برنامه نویسی کنید.

مزایای Swift:

  • Swift به عنوان یک زبان مدرن امروزی از تمامی قابلیت های یک زبان پیشرفته نظیر Object Oriented , Generic , async/await  و …. به طور کامل پشتیبانی می کند.
  • Swift یک زبان کامپایلری و کاملا Type-Safe اکه این امر میزان خطاهای حین اجرا ( Runtime error ) را به طرز محسوسی کاهش می دهد.
  • یادگیری زبان Swift برای افراد مبتدی بسیار ساده و روان خواهد بود
  • این زبان با زبان های و ++C سازگاری کامل و دوطرفه دارد ( به معنی که شما می توانید از کد های Swift در C/++C استفاده کنید و برعکس)
  • به دلیل کامپایلری بودن این زبان، سرعت اجرای بسیار بالایی دارد.
  • Swift 6  به طور کامل Compile-time Data Race Safe است به این معنی که زبان در پیش از اجرا امکان به وجود آمدن هر گونه Data race در کد شما را بررسی و در صورت وجود ارور خواهد داد.

نحوه ی نصب:

برای نصب این زبان روی سیستم عامل خود یکی از روش های زیر را دنبال کنید:

macOS:

ساده ترین راه برای نصب Swift در سیستم عامل مک نصب نرم افزار Xcode است. شما می توانید این نرم افزار را به طور رایگان از طریق App Store دانلود نمایید.

Linux:

برای نصب سویت در سیستم عامل Linux کافی است در صورات زیر را در ترمینال لینوکس وارد کنید:

				
					curl -O https://download.swift.org/swiftly/linux/swiftly-$(uname -m).tar.gz && \
tar zxf swiftly-$(uname -m).tar.gz && \
./swiftly init --quiet-shell-followup && \
. ~/.local/share/swiftly/env.sh && \
hash -r

				
			

Windows:

برای نصب Swiftبر روی ویندوز کافیست به این لینک مراجعه کرده و آخرین نسخه ی موجود را دانلود و نصب نمایید.