0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Иногда на собеседованиях на позицию iOS-разработчика соискателей спрашивают о том, что такое<strong>optional</strong>, какие существуют способы развернуть<strong>optional</strong>, и что называют неявно развернутым<strong>optional</strong>? Об этом - наша статья.</p>
1
<p>Иногда на собеседованиях на позицию iOS-разработчика соискателей спрашивают о том, что такое<strong>optional</strong>, какие существуют способы развернуть<strong>optional</strong>, и что называют неявно развернутым<strong>optional</strong>? Об этом - наша статья.</p>
2
<p>Тип<strong>optional</strong>в Swift представляет собой<strong>enum</strong>, который способен иметь одно из 2-х значений: либо<strong>None</strong>, либо<strong>Some(T)</strong>, причем<strong>T</strong>здесь - это любой тип данных. С помощью такого типа разработчик может обезопасить себя от попытки доступа к nil-значению.</p>
2
<p>Тип<strong>optional</strong>в Swift представляет собой<strong>enum</strong>, который способен иметь одно из 2-х значений: либо<strong>None</strong>, либо<strong>Some(T)</strong>, причем<strong>T</strong>здесь - это любой тип данных. С помощью такого типа разработчик может обезопасить себя от попытки доступа к nil-значению.</p>
3
<h3>Развернуть optional можно несколькими способами:</h3>
3
<h3>Развернуть optional можно несколькими способами:</h3>
4
<p>Способ № 1 -<strong>проверка на nil</strong>:</p>
4
<p>Способ № 1 -<strong>проверка на nil</strong>:</p>
5
<p>Способ № 2 -<strong>Guard let</strong>:</p>
5
<p>Способ № 2 -<strong>Guard let</strong>:</p>
6
<p>Способ № 3 -<strong>If let</strong>:</p>
6
<p>Способ № 3 -<strong>If let</strong>:</p>
7
<p>Способ № 4 -<strong>Force unwrapping</strong>. Способ является небезопасным, ведь если значение будет равно nil, программа завершится:</p>
7
<p>Способ № 4 -<strong>Force unwrapping</strong>. Способ является небезопасным, ведь если значение будет равно nil, программа завершится:</p>
8
<p>Способ № 5 -<strong>Nil coalescing</strong>:</p>
8
<p>Способ № 5 -<strong>Nil coalescing</strong>:</p>
9
<p>Способ № 6 -<strong>Optional chaining</strong>:</p>
9
<p>Способ № 6 -<strong>Optional chaining</strong>:</p>
10
<h2>Что-нибудь еще?</h2>
10
<h2>Что-нибудь еще?</h2>
11
<p>Также optional применяется в<strong>приведении типов</strong>:</p>
11
<p>Также optional применяется в<strong>приведении типов</strong>:</p>
12
<p>И в<strong>обработке ошибок</strong>:</p>
12
<p>И в<strong>обработке ошибок</strong>:</p>
13
<p><em>По материалам https://tproger.ru/.</em></p>
13
<p><em>По материалам https://tproger.ru/.</em></p>
14
<p>Удачи на собеседованиях!</p>
14
<p>Удачи на собеседованиях!</p>
15
15