Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
opcionalnye_tipy_opcionaly [2023/09/11 07:12] oresh.dm |
opcionalnye_tipy_opcionaly [2023/09/11 07:41] (текущий) oresh.dm |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | * nil - полное отсутствие какого-либо значения, | + | nil - полное отсутствие какого-либо значения, |
| - | | + | |
| + | var name: Sting? = nill | ||
| + | |||
| + | ==== 1. Жесткое (прямое) извлечение из опционала - unwraping - " | ||
| + | |||
| + | var name: Sting? = " | ||
| + | |||
| + | print(" | ||
| + | |||
| + | Так можно делать если на 100% уверен что внутри опционала есть значение. | ||
| + | |||
| + | ==== 2. Мягкое извлечение из-под опционала с помощью ответвлений ==== | ||
| + | |||
| + | ==== 3. Оператор объединения по nil / Оператор оционального связывания ==== | ||
| + | |||
| + | var name: String? = nil | ||
| + | |||
| + | var defaultName = " | ||
| + | |||
| + | let nameForGreating = name ?? defaultName | ||
| + | |||
| + | print(" | ||
| + | |||
| + | Проверка идет слева направо. сначала проверяется опционал, | ||
| + | |||
| + | ==== Пример работы с тернальным оператором: | ||
| + | |||
| + | var name: String = " | ||
| + | |||
| + | |||
| + | var age:Int? = 37 | ||
| + | |||
| + | |||
| + | age != nil ? (print(" | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| - | * 1. Жесткое (прямое) извлечение из опционала - unwraping - " | ||
| - | * '' | ||
| - | * print(" | ||
| - | * Так можно делать если на 100% уверен что внутри опционала есть значение. | ||
| - | * | ||