تفاوت ? و ! در زمان تعریف متغییر های Optional در Swift چیست؟

0 رأی
میانگین بازدید روزانه 0.1199 بازدید

در زبان برنامه نویسی Swift یک متغییر optional را می توان به دو صورت زیر تعریف کرد:

var optionalString: String? = "Hello"
var optionalString: String! = "Hello"

تفاوت این دو روش تعریف متغییر optional چیست؟

سوال 2 سال قبل در تالار کامپیوتر و اینترنت توسط Saeed Zarinfam (336 امتیاز)
ویرایش 2 سال قبل توسط Saeed Zarinfam

1 جواب

0 رأی

در زبان برنامه نویسی Swift وقتی یک متغییر بصورتOptional تعریف می شود، برای استفاده حتما باید unwrap شود تا بتوان به مقدار درونی آن دسترسی پیدا کرد، از ! برای unwrap یک متغییر Optional که با ? تعریف شده است استفاده می شود:

var optionalString: String? = "Hello"

optionalString!.isEmpty

هر جایی که بخواهید به یکی از متد ها یا property های optionalString دسترسی داشته باشید باید آن را unwrap کنید. حالا اگر زمان تعریف optionalString بجای ? از ! استفاده کنیم دیگر نیازی به unwrap کردن در هر بار استفاده نیست و به این نوع متغییر ها implicitly unwrapped optional می گویند:

var optionalString: String! = "Hello"

optionalString.isEmpty
جواب 2 سال قبل توسط Saeed Zarinfam (336 امتیاز)

سوال های مشابه

0 رأی
0 جواب میانگین بازدید روزانه 0.3215 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.0544 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0761 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.1484 بازدید
+2 رأی
1 جواب میانگین بازدید روزانه 0.21179 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 1.6446 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0657 بازدید
0 رأی
3 جواب میانگین بازدید روزانه 0.16145 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0657 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.0982 بازدید
کانال تلگرام جواب یاب
...