Каково техническое определение необязательного в Swift?

Во-первых, я понимаю, что такое необязательный и что он делает в Swift. Однако я заметил отсутствие технического определения в документации Apple Swift. Он определяет это как:

Вы используете опции в ситуациях, когда значение может отсутствовать. Факультативный говорит:

Есть значение, и оно равно x или

вообще нет никакой ценности

Итак... является ли необязательным типом? объявление типа? Как бы вы на самом деле определили необязательный в одном предложении?


person Walter M    schedule 27.07.2015    source источник
comment
Необязательный тип означает: может принимать значение nil.   -  person Long Pham    schedule 27.07.2015


Ответы (2)


Необязательным является Enum, который может иметь два состояния:

  • .None
  • .Some(T)

Здесь представлена ​​дополнительная информация о Optionals.

person Dániel Nagy    schedule 27.07.2015

Язык Swift определяет постфикс ? как синтаксический сахар для именованного типа Optional, который определен в стандартной библиотеке Swift.

Тип Optional — это перечисление с двумя вариантами, None и Some(T), которые используются для представления значений, которые могут присутствовать или отсутствовать. Любой тип можно явно объявить необязательным (или неявно преобразовать в него). Если вы не указываете начальное значение при объявлении необязательной переменной или свойства, его значение по умолчанию автоматически равно нулю.

Вы можете найти более подробную информацию в официальной документации

person agy    schedule 27.07.2015
comment
Спасибо тебе за это :). Теперь это имеет больше смысла. Почему, черт возьми, они не помещают это в фактическую документацию. чм. - person Walter M; 27.07.2015
comment
@WalterM: приведенная выше цитата из фактической документации. - person Martin R; 27.07.2015