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

0 رأی

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

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

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

سوال 2 سال قبل در تالار کامپیوتر و اینترنت توسط Saeed Zarinfam (905 امتیاز) 34% درصد پذیرش
ویرایش 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 (905 امتیاز)

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

+2 رأی
1 جواب 160 بازدید
0 رأی
0 جواب 36 بازدید
0 رأی
1 جواب 50 بازدید
...