Size: a a a

2021 December 28

А

Азат in SwiftBook
Ну потому что ты эту же переменную которую создал пытаешься вернуть в блоке элз
источник

А

Азат in SwiftBook
А он ее не видит внутри себя
источник

EA

Ed A in SwiftBook
а как будет правильно?  такой код в функции работает у меня работает
источник

EA

Ed A in SwiftBook
у меня age опцинальная переменная
источник

I

Ilya in SwiftBook
https://youtu.be/6ED4W7zORcI я нашёл то, что мне более менее походит, если кому надо - вот 👇
источник

А

Азат in SwiftBook
То есть область видимости только снаружи гуард,а ты пытаешься взять эту переменную а он ее не видит,так как область видимости
источник

EA

Ed A in SwiftBook
я понял
источник

EA

Ed A in SwiftBook
Спасибо, я понял в чем ошибка
источник

EA

Ed A in SwiftBook
Спасибо
источник

В

Василий in SwiftBook
видит.
просто не видит то что объявлено в guard и в else вообще надо делать выход из скоупа
источник

В

Василий in SwiftBook
в его кейсе вообще надо использовать не guard, а if let
источник

А

Азат in SwiftBook
Там даже в ошибке написано что он в этом скопе не видит эту переменную
источник

EA

Ed A in SwiftBook
я вижу, но мне нужно понять почему так происходит
источник

В

Василий in SwiftBook
ну да, он не видит humanAge - но она объявлена просто в другом скоупе
источник

В

Василий in SwiftBook
а если ты до этого выражения объявишь переменную - ее будет видно
источник

EA

Ed A in SwiftBook
тут просто гуард для меня совсем новый инструмент, я такого нигде не встречал, вот пытаюсь понять как он работает
источник

В

Василий in SwiftBook
условно, if let, guard let - это синтаксический сахар для выражений типа
if ( value != nil ) {
let someValue = value
} else {
print ("no value")
}

разумеется someValue не будет видна в else
источник

IS

Igor Smirnov in SwiftBook
Ну не совсем. Точнее совсем не. В отличие от if let - guard требует покинуть scope (break, return). If этого не требует. Не путайте новичков, пожалуйста
источник

В

Василий in SwiftBook
ну я про if else пример привел.
источник

В

Василий in SwiftBook
guard да, немного иное, но в целом принцип одинаковый
источник