Для чего используется case .some в Swift?

«Для чего используется case .some в Swift?» — вопрос из категории Swift Core, который задают на 22% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

.some — это case перечисления Optional, который указывает на наличие обернутого значения. Optional — это enum с двумя кейсами: .none (эквивалент nil) и .some(Wrapped).

Использование:

  1. Pattern Matching: Позволяет извлечь значение внутри опционала.
  2. Ручное создание опционала: Хотя на практике используется синтаксический сахар (Int?).

Примеры:

1. Pattern Matching:

let optionalValue: Int? = 42

// Сопоставление с образцом (pattern matching)
if case .some(let value) = optionalValue {
    print("Значение есть: (value)") // Выведет: Значение есть: 42
}

// Эквивалентная запись с if let:
if let value = optionalValue {
    print("Значение есть: (value)")
}

2. Ручное создание:

let manualOptional: Optional<Int> = .some(10)
// То же самое, что: let manualOptional: Int? = 10

Важно: В повседневном коде вы чаще используете if let или guard let, но понимание .some необходимо для работы с более сложными паттернами.