1. Задача: Рассказать про Reference и Value semantics. Что выведется на экран и почему?
class Circle {
var radius: Int = 5
}
var circle1 = Circle()
var circle2 = circle1
circle2.radius = 10
print(circle1)2. Задача: Что такое Optional? Как его можно реализовать?
enum Optional<T> {
case value(T)
case none
}Ответ
Такого решения было достаточно.
3. Задача: Какой тип будет у переменной int? Рассказать про вложенные Optional и как с ними можно работать.
let stringInt = "123"
let int = stringInt.map { Int($0) }4. Задача: Реализовать функцию map для нашего Optional.
extension Optional {
func map<Out>(closure: (T) -> (Out)) -> Optional<Out> {
switch self {
case .value(let…