Оператор Swift guard позволяет вам разворачивать опции в новую константу и выполнять досрочный возврат, если присваивание не выполняется.
var someString:String? = "hello"
...
...
guard let newString = someString
else {
return
}
...
Если я хочу развернуть необязательную переменную и установить ее в предопределенную необязательную переменную, я сначала разворачиваю новую константу (newString), а затем устанавливаю необязательную переменную после оператора защиты следующим образом:
var someString:String? = "hello"
var nonOptionalString:String = "bonjour"
...
...
guard let newString = someString
else {
return
}
nonOptionalString = newString
...
Есть ли способ установить предопределенную необязательную переменную в условии оператора Guard без создания новой константы? Что-то вроде следующего (что не работает)?
var someString:String? = "hello"
var nonOptionalString:String = "bonjour"
...
...
guard nonOptionalString = someString
else {
return
}
...
Если что-то подобное невозможно, существует ли основная философия дизайна языка Swift или техническая причина, почему этого не существует?