Подтвердить что ты не робот

Что означает значение вопроса?? в быстром?

В быстром программировании я обнаружил несколько вопросительных знаков с объектами.

var window: UIWindow?

Может кто-нибудь объяснит его использование?

4b9b3361

Ответ 1

Вы можете использовать if и let вместе для работы со значениями, которые могут быть отсутствует. Эти значения представлены как optionals. optionalзначение либо содержит значение, либо содержит nil, чтобы указать, что значение отсутствует. Напишите знак вопроса (?) После типа значения для отметки значения optional.

Если необязательное значение nil, условие равно false, а код в скобки пропускаются. В противном случае необязательное значение распаковывается и присваивается константе после let, что делает развернутое значение доступный внутри блока кода.

Отрывок из: Apple Inc. "Быстрый язык программирования". интерактивные книги. https://itun.es/pk/jEUH0.l

Пример:

var optionalString: String? = "Hello"
optionalString == nil

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}

В этом коде выход будет Hello! John Appleseed. И если мы установим значение optionalName как nil. Условным результатом if будет false и код внутри, который if будет пропущен.

Ответ 2

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

Он использовался в тех же ситуациях, в которых вы явно указывали return nil в Objective-C, когда нет объекта для возврата или для значений, которые не являются объектами, константы, такие как NSNotFound. Опционы обеспечивают последовательный способ достижения этого во всех типах данных.

Из Apple, предоставленного iBook

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

  • Существует значение, и оно равно x

или

  • Не существует значения вообще

Вот пример. Swifts Тип String имеет метод, называемый toInt, который пытается преобразовать значение String в значение Int. Однако, не каждая строка может быть преобразована в целое число. Строка "123" может быть преобразуется в числовое значение 123, но строка "привет, мир" не имеет очевидного числового значения для преобразования в.

let possibleNumber = "123"
let convertedNumber = possibleNumber.toInt()
// convertedNumber is inferred to be of type "Int?", or "optional Int"

Поскольку метод toInt может завершиться неудачей, он возвращает необязательный Int, а не Int. Необязательный Int записывается как Int?, а не Int. вопросительный знак указывает, что значение, которое оно содержит, является необязательным, это означает, что оно может содержать некоторое значение Int, или оно не может содержать ценность вообще. (Он не может содержать ничего другого, например, значение Bool или значение String. Его либо Int, либо его вообще нет.)

Существует целый раздел справочника по языку iBook on Optionals, и они упоминаются несколько раз в течение всей книги. Вы должны внимательно изучить его, поскольку это фундаментальная концепция программирования Swift и та, которая не распространена на многих других языках.

Ответ 3

необязательное значение типа.

Для примера: необязательная версия оператора литья типа: as?, среднее значение as используется для литья типов, которое может быть необязательным для броска.