پنجشنبه ۱۱ دی ۰۴

Swift - Optionals

مرجع رسمي مقاله هاي طراحي اپليكيشن اندرويد در مشهد

Swift - Optionals

۳۲ بازديد

قیمت های محصور
جدول ذیل نوع متغیر، مقدار یاد ما یحتاج برای ذخیره value در یاد و حداکثر و دست کم مقدار قابل ذخیره در‌این طراحی اپلیکیشن در مشهد  نوع متغیرها را نماد می‌دهد.

Type Typical Bit Width Typical Range
Int8 1byte -127 to 127
UInt8 1byte 0 to 255
Int32 4bytes -2147483648 to 2147483647
UInt32 4bytes 0 to 4294967295
Int64 8bytes -9223372036854775808 to 9223372036854775807
UInt64 8bytes 0 to 18446744073709551615
Float 4bytes 1.2E-38 to 3.4E+38 (~6 digits)
Double 8bytes 2.3E-308 to 1.7E+308 (~15 digits)
Aliases
میتوانید با به کار گیری از typealias یک اسم تازه برای یک type جانور ساخت فرمایید.
در اینجا سینتکس معمولی برای تعریف‌و‌تمجید یک نوع تازه با به کار گیری از typealias ، آمده میباشد :

typealias newname = type
برای مثال، خط ذیل به کامپایلر امر میدهد که Feet اسم دیگری برای Int ، میباشد.

typealias Feet = Int
در حال حاضر، اعلان ذیل به طور کاملً رسمی میباشد و یک متغیر integer به اسم distance ساخت‌و‌ساز می نماید.

typealias Feet = Int
var distance: Feet = 100
print(distance)
زمانی نرم‌افزار فوق را با به کارگیری از playground اعمال می‌کنیم، سود تحت را می‌گیریم.

100
Type Safety
Swift 4 یک لهجه type-safe میباشد.
به‌این مفهوم که در صورتیکه بخشی از کد شما انتظار یک حرفه را داشته باشد، نمی توانید آن را به خطا یک Int ارسال فرمایید.
از آنجایی که سوئیفت 4 از لحاظ type-safe میباشد، هنگام کامپایل کد شما، type تحقیق را اجرا می‌دهد و اشکال ناهماهنگ را تحت عنوان غلط نشان گذاری می نماید.

var varA = 42
varA = "This is hello"
print(varA)
هنگامی اپ فوق را کامپایل میکنیم، خطای فرصت کامپایل تحت را ساخت و ساز می نماید.

main.swift:2:8: error: cannot assign value of type 'String' to type 'Int'
varA = "This is hello"
Type Inference
inference به یک کامپایلر قابلیت و امکان می‌دهد تا type یک particular expression (عبارت خاص) را به صورت خود کار هنگام کامپایل کردن کد شما، به آسانی با نظارت مقادیری که ارائه می‌کنید، inference نماید. سوئیفت 4 از inference استعمال می نماید تا type مطلوب را به گستردن تحت بدست آورد.

// varA is inferred to be of type Int
var varA = 42
print(varA)

// varB is inferred to be of type Double
var varB = 3.14159
print(varB)

// varC is also inferred to be of type Double
var varC = 3 + 0.14159
print(varC)
خروجی :

42
3.14159
3.14159
متغیر ها
یک متغیر فضای ذخیره سازی نامگذاری گردیده ای را در چنگ ما قرار میدهد که نرم‌افزار های ما می‌توانند آن را ویرایش نمایند.
هر متغیر در سوئیفت 4 نوع خاصی داراست که اندازه و دکوراسیون یاد متغیر را انتخاب می نماید.
محدوده مقادیری که می قدرت در آن خاطر ذخیره کرد.
و گروه عملیاتی که می اقتدار روی متغیر ایفا کرد.

سوئیفت 4 از اشکال مهم متغیرهای Int – Float – Double – Bool – String و Character پناه می نماید که در نصیب پیشین توضیحات آن داده گردیده‌است.

Swift - Optionals
سوئیفت 4 همینطور Optionals type را معرفی می نماید که خلا یک مقدار را در دست گرفتن می نماید.
آیتم های از روی اراده می‌گویند “یک مقدار وجود دارااست و موازی با x میباشد” یا این که “به هیچ وجه کمی نیست”.
Optional به تنهایی یک type میباشد و در واقع یکی جدیدترین مورد های سوئیفت 4 میباشد.
این دارنده دو مقدار ممکن میباشد، None و Some(T)، که در آن T یک مقدار مرتبط از type داده درست جان دار در سوئیفت 4 میباشد.



var perhapsInt: Int?
در اینجا یک اعلان فن از روی اراده میباشد :

var perhapsStr: String?
اعلان بالا هم اندازه مقداردهی نخستین آن به nil میباشد که به معنای خلا مقدار میباشد.

var perhapsStr: String? = nil
بیایید نمونه پایین را در حیث بگیریم تا بفهمیم که چه گونه آیتم‌های ازروی اراده در Swift 4 شغل می‌نمایند

var myString:String? = nil

if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
خروجی :

myString has nil value
مورد‌های ازروی اراده شبیه به کارگیری از nil با اشاره‌گرها در Objective-C می باشند،
البته برای هر type ، خیر تنها کلاس‌ها، شغل می‌نمایند.

Forced Unwrapping
در‌صورتی‌که متغیری را از روی اختیار تعریف و تمجید نموده اید ، برای اخذ مقدار از این متغیر ، می بایست آن را گشوده فرمائید.
این تنها به معنای قرار دادن یک نشان تعجب در انتهای متغیر میباشد.

نمونه :

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
خروجی :

Optional("Hello, Swift 4!")
حال اذن دهید unwrapping را ایفا کنیم تا مقدار درست متغیر را بدست آوریم

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
print( myString! )
} else {
print("myString has nil value")
}
خروجی :

Hello, Swift 4!
Automatic Unwrapping
می‌توانید متغیرهای از روی اراده را با به کارگیری از نماد تعجب به مکان نشانه پرسش اعلام فرمایید.
اینگونه متغیرهای ازروی میل به صورت اتومات گشوده می‌شوند و برای اخذ مقدار تخصیص داده گردیده نیازی به استعمال از نماد تعجب دیگری در انتهای متغیر ندارید.

var myString:String!
myString = "Hello, Swift 4!"

if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
خروجی :

Hello, Swift 4!
Optional Binding
از binding برای کشف کردن اینکه آیا یک valueاختیاری دربردارنده value میباشد یا این که نه، استعمال فرمائید، و چنانچه اینگونه میباشد، آن value را تحت عنوان یک constant یا این که variable موقت در دسترس قرار دهید.
یک optional binding برای امر if به طور ذیل میباشد :

if let constantName = someOptional {
statements
}
Tuple ها
سوئیفت 4 Tuples type را نیز معرفی می نماید که برای دسته بندی تعدادی مقدار در یک مقدار ترکیبی واحد به کار گیری میگردد.

مقادیر جان دار در یک تاپل می‌توانند از هر نوع باشند و نیازی به یک نوع بودن ندارند.
برای مثال، (“Tutorials Point”، 123) یک تاپل با دو مقدار میباشد ، یکی‌از نوع حرفه و دیگری از نوع عدد درست میباشد.

شما میتوانید تاپل ها را از هر مقدار که میخواهید و از هر تعداد نوع داده متعدد ساخت و ساز نمایید.

در اینجا سینتکس اعلان تاپل آمده میباشد :

var TupleName = (Value1, value2,… any number of values)
با استعمال از اعداد شاخصی که از 0 استارت میگردند می‌توانید به مقادیر تاپل دسترسی پیدا فرمائید.
در اینجا مثال ای از دسترسی به مقادیر tuple ، آمده میباشد.

print(“The code is\(error501.0)”)
print(“The definition of error is\(error501.1)”)
میتوانید متغیرهای یک تاپل را در طی اعلان اسم‌گذاری فرمائید و میتوانید با به کارگیری از اسم آن ها را فراخوانی نمایید.

var error501 = (errorCode: 501, description: “Not Implemented”)
print(error501.errorCode) // prints 501.
تاپل ها در برگرداندن چند مقدار از یک تابع موثر می باشند.
مانند، یک نرم افزار اینترنت ممکن میباشد یک‌سری نوع (“String”، Int) را برای علامت دادن توفیق یا این که عدم توفیق بارگیری برگرداند.
با برگرداندن مقادیر گوناگون در یک تاپل ، می‌توانیم بسته به اشکال متفاوت تاپل تصمیم گیری کنیم.
نکته ی قابل ذکر این میباشد که تاپل ها برای مقادیر موقت موثر می‌باشند و برای داده های غامض مطلوب نیستند.
تا كنون نظري ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در رویا بلاگ ثبت نام کرده اید می توانید ابتدا وارد شوید.