Задать вопрос
@Sir0zha

Как в функции с помощью Switch перевести массив из Int -> String?

Если задано число от 0 до 9, верните его словами.
Вход :: 1
Выход :: «Один».
Начальная функция:
func switchItUp(_ number: Int) -> String {
}

То как я пробовал решать:
func switchItUp(_ number: Int) -> String {
let array = [1...9]
switch _ ((Int) -> String) {
case [1]: print("One")
case 2: print("Two")
break
default: break
}
}

Что я не так делаю?
  • Вопрос задан
  • 245 просмотров
Подписаться 2 Простой 3 комментария
Решения вопроса 2
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode
Что делает строчка:
let array = [1...9]

Не понял про перевод в массив. В примере кода вы просто выводите значения. Если я неправильно понял ваш вопрос - уточните.
Но неважно, давайте перейдем к костылям.

Делаем через функцию:
func switchUp(_ value: Int) -> String? {
        guard value > 0 && value < 10 else { return nil }
        switch value {
        case 1:
            return "Один"
        case 2:
            return "Два"
        default:
            return nil
        }
}


Другой вариант костыля:

enum LocalizedValue: String {
        case 1 = "Один"
        case 2 = "Два"
        case 3 = "Три"
}
    
let string = LocalizedValue.1.rawValue


Если не забывать про локализацию, можно сломать голову (род существительных, число и прочее). Но как я понимаю, вам не для локализации, а для разового эксперимента. Костыли подойдут.

P.S. Используйте форматирование для кода.
Ответ написан
@Sir0zha Автор вопроса
func switchItUp(_ number: Int) -> String {
return ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"][number]
} Вероятно самое простое решение, но без Switch
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы