تبدیل نوع (Swift Type Casting)
تبدیل نوع (Type Casting) یعنی تغییر دید نوع داده. در سوئیفت با as، as? و as! کار می کنیم. «اختیاری (Optional)» یعنی مقداری که شاید وجود نداشته باشد. با مثال های ساده جلو می رویم.
بالارَوی و پایین رَوی نوع
وقتی آرایه ای از Any داری، باید هر مورد را به نوع درست برگردانی. با as? امن تست کن و سپس چاپ کن.
let items: [Any] = [1, "Swift"]
for item in items {
if let i = item as? Int {
print("Int: \(i)")
} else if let s = item as? String {
print("String: \(s)")
}
}
اجبار در تبدیل با as!
اگر از نوعِ دقیق مطمئنی، می توانی از as! استفاده کنی. اما اگر اشتباه باشد، برنامه کرش می کند.
let value: Any = 42
let i = value as! Int
print(i)
گام های تمرینی
- یک آرایه از
Anyبساز. - با
as?هر مورد را ایمن تبدیل کن. - همان را با
as!امتحان کن و تفاوت را ببین.
هشدار: تا مجبور نشدی از as! استفاده نکن. اول as? و بازکردن ایمن را امتحان کن.
برای مرور کاراکترها به کاراکترها سر بزن. همچنین اپراتورها را در عملگرها ادامه بده. اگر لازم شد، همین صفحه تبدیل نوع را دوباره مرور کن.
جمع بندی سریع
as?امن است و اختیاری می دهد.as!خطرناک است و ممکن است کرش کند.- با
Anyهمیشه نوع را بررسی کن. - اول ایمن، بعد اجبار؛ این قانون طلایی است.