Это «шаблон привязки значения» (внутри «шаблона регистрационного перечисления»).
SandwichError
- это перечисление с «связанными значениями», что-то вроде
enum SandwichError: Error {
case outOfCleanDishes
case missingIngredients([String])
}
Каждое ключевое слово catch
сопровождается шаблоном, и если SandwichError.missingIngredients
выдается ошибка с
throw SandwichError.missingIngredients(["Salt", "Pepper"])
затем
catch SandwichError.missingIngredients(let ingredients)
соответствует, и локальная переменная ingredients
связана со связанным значением ["Salt", "Pepper"]
для блока catch.
Он работает в основном так же, как и для Сопоставление значений перечисления с оператором переключения :
Вы можете проверить различные типы штрих-кодов, используя инструкцию switch, аналогично примеру в Сопоставлении значений перечисления с инструкцией Switch. Однако на этот раз связанные значения извлекаются как часть оператора switch. Вы извлекаете каждое связанное значение в виде константы (с префиксом let) или переменной (с префиксом var) для использования в теле корпуса коммутатора