1
Swift Language Features / Custom Implementations
1. Задача: Написать свой опционал, функцию для форс анрапа, сравнение Equatable значений
enum Optional<T> : ExpressibleByNilLiteral {
case some(let T)
case none
func force() -> T {
switch self {
case .none:
fatalError()
case .some(let value):
return value
}
}
}
extension Optional<T>: Equatable where T:Equatable {
static func ==(lhs: Optional<T>, rhs: Optional<T>) {
swicth (lhs, rhs) {
case (nil, nil):
return true
case (.some(let lhsValue), .some(let rhsValue)):
return lhsValue ==…