Никакой символ не выводится: enum FinancialInstitution нельзя напрямую сравнить со строкой. Нужно сравнить rawValue или создать enum из строки.
Какой символ будет выведен в примере №24
Никакой символ не выводится: enum FinancialInstitution нельзя напрямую сравнить со строкой. Нужно сравнить rawValue или создать enum из строки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой символ появится в консоли после выполнения следующего Swift‑кода.
enum FinancialInstitution: String {
case sberbank = "sber"
}
if FinancialInstitution.sberbank == "sber" {
print("💚")
}
Ответ
Никакой символ не выводится: enum FinancialInstitution нельзя напрямую сравнить со строкой. Нужно сравнить rawValue или создать enum из строки.
Исправление для проверки строкового кода:
if FinancialInstitution.sberbank.rawValue == "sber" {
print("💚")
}
Другой вариант: FinancialInstitution(rawValue: "sber") == .sberbank. Строковый raw type предоставляет преобразование, но не делает enum взаимозаменяемым со String во всех операциях. Конструктор из неизвестного rawValue возвращает nil. В исходной программе ошибка типов возникает до выполнения условия.