Отличная особенность Swift - она дает вам множество неявных переменных, таких как:
value
в операторе set
.
oldValue
в операторе didSet
.
error
в предложении catch
.
Мне интересно, есть ли в выражении switch
нечто подобное. Не думаю, но хотел спросить.
Например, возьмем следующий код (предположим, что есть перечисление, которое определяет вычисляемое свойство displayName
).
Обратите внимание, как я должен явно создать временную переменную для хранения результата функции, поскольку я должен использовать ее как для включения, так и для выключения в операторах case ниже ...
let valToSwitchOn = getValToSwitchOn()
switch valToSwitchOn {
case .categories: return categories.count > 0 ? valToSwitchOn.displayName : nil
case .narratives: return narratives.count > 0 ? valToSwitchOn.displayName : nil
}
Однако, если Swift предложит неявную переменную для включенного значения, это упростит код, например, (Примечание: здесь я использую switchValue
в качестве примера) ...
switch getValToSwitchOn() {
case .categories: return categories.count > 0 ? switchValue.displayName : nil
case .narratives: return narratives.count > 0 ? switchValue.displayName : nil
}
Это позволяет мне напрямую переключать коммутатор с помощью функции без необходимости сначала создавать явную переменную, поскольку включенное значение предоставляется неявно для меня. Не так уж много, если я это сделаю (это всего лишь одна строка), но мне было интересно, было ли уже что-то подобное.
Так есть ли у Swift неявная переменная для switch
?