در زبان برنامه نویسی 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