Так как в приведенных выше ответах четко объясняется, как безопасно играть с опциями. Я попробую объяснить, какие опции в действительности бывают быстрыми.
Другой способ объявить необязательную переменную -
var i : Optional<Int>
И необязательный тип - это не что иное, как перечисление с двумя случаями, т. е.
enum Optional<Wrapped> : ExpressibleByNilLiteral {
case none
case some(Wrapped)
.
.
.
}
Итак, чтобы назначить nil нашей переменной i. Мы можем сделать var i = Optional<Int>.none
или присвоить значение, мы передадим некоторое значение var i = Optional<Int>.some(28)
. Согласно swift, «nil» - это отсутствие значения. И создать экземпляр, инициализированный с помощью nil
. Мы должны соответствовать протоколу с именем ExpressibleByNilLiteral
и большим, если вы его догадались, только Optionals
соответствуют ExpressibleByNilLiteral
и соответствуют другим типам.
ExpressibleByNilLiteral
имеет единственный метод, называемый init(nilLiteral:)
, который инициализирует instace с nil. Обычно вы не вызываете этот метод, и в соответствии с быстрой документацией не рекомендуется называть этот инициализатор напрямую, когда компилятор вызывает его всякий раз, когда вы инициализируете необязательный тип с литералом nil
.
Даже мне приходится обертывать (нет каламбур) моя голова вокруг опций: D Happy Swfting All .
Проверьте эту подсказку по Vim: Поиск визуально выделенного текста
Или можно просто дергать выделенный текст с y и перейти к режиму поиска / , тогда можно вставить последний дергавший текст с Ctrl+R 0
Используйте q / вместо всего / . (То же с q : ). Теперь Вы можете редактирование VIM через свою историю команд и историю поиска! (Попробуйте Ctrl-N и Ctrl-P когда-то).