Опциональные типы данных в Swift

Домашняя работа к главе 14

Опционалы — это очень важный элемент Swift, которого, кстати, нет во многих других языках программирования. Вы будете встречаться с опциональными значениями практически постоянно во время написания собственных программ. Конечно, после изучения данной темы вы не станете понимать их на 100%, так как просто не знаете многих других механик языка, но «набить руку», немного потренироваться, а самое важное узнать, что такое опционалы — вот самая важная задача данной главы.

Задание 1

Что такое опциональный тип данных?

Правильный ответ

Это особый тип данных, который позволяет переменной или константе иметь какое-либо четко определенное значение, или не иметь его вовсе. Отсутствие значения обозначается с помощью ключевого слова nil.

 

Задание 2

Укажите опционалы с отсутствующим взглядом значением.

var optOne: Int?
var optTwo = nil
var optThree = ""
var optFour: Int! = ""
var optFive = 0
var optSix: Int! = nil
Правильный ответ

Переменные optOne и oprSix являются опционалами с отсутствующим значением.
optTwo объявлена с ошибкой, т.к. у нее не указан тип данных.
optThree — переменная типа String
optFour — неверно указан ти или значение (Int или String)
optFive — переменная типа Int

 

Задание 3

Какое значение у каждой из приведенных переменных?

var easy: String?
var medium: String!
var hard: String
Правильный ответ

Переменные easy и medium не имеют значения (nil).
Выражение с переменной hard вызовет ошибку, т.к. оно не опционального типа и не имеет значения.

 

Задание 4

В чем отличие переменных easy и medium из предыдущего задания?

Правильный ответ

В переменной medium используется косвенное извлечение значения, т.е. в момент обращения у нему оно не должно иметь nil в качестве значения, т.к. будет автоматически извлечено.

 

Задание 5

Будет ли корректно выполнен следующий программный код? Если в нем присутствуют ошибки, то по-возможности исправьте их.

easy = "1"
medium = "contra"
hard = "play game"
easy = medium
hard = medium
easy = hard!
easy = hard
var gameTuple = (easy, Optional(hard))
var gameText: String = gameTuple.0
Правильный ответ

Строка 6 вызовет ошибку, т.к. происходит попытка извлечения неопционального значения
Строка 8 вызовет ошибку, т.к. неопционалу присваивается опциональное значения без принудительного извлечения

Доступ закрыт

Дополнительные 6 заданий доступны только подписчикам

Оформить доступ


Comments are closed.