Я новичок в использовании Swift и только что получил свое первое задание. Инструкции присваивания следующие: Используйте функцию map класса array, чтобы преобразовать массив целых чисел в слова, представленные целыми числами. Например, если ваш массив был: [49], результирующий массив должен выглядеть примерно так: ["сорок девять"]. Сопоставление должно обрабатывать как минимум цифры в тысячах.
Я получаю несколько ошибок, но самая большая из них, которую я не могу выяснить: main.swift: 46: 25: error: использование неразрешенного идентификатора randomArray 'let stringRandomArray = randomArray.map {convertInt (num: $ 0)}
Помимо этого, я получаю ошибки при вызовах функций в своем операторе switch. Как вы вызываете функцию в swift с переменной в качестве аргумента? Я знаю, что мой код очень грязный, но я все еще привыкаю к новому языку.
let singleDigit = [0: "Zero", 1: "One", 2: "Two", 3: "Three", 4: "Four", 5: "Five", 6: "Six", 7: "Seven", 8: "Eight", 9: "Nine"]
let doubleDigit = [11: "Eleven", 12: "Twelve", 13: "Thirteen", 14: "Fourteen", 15: "Fifteen", 16: "Sixteen", 17: "Seventeen", 18: "Eighteen", 19: "Nineteen"]
let tensMultiples = [10: "Ten", 20: "Twenty", 30: "Thirty", 40: "Fourty", 50: "Fifty", 60: "Sixty", 70: "Seventy", 80: "Eighty", 90: "Ninety"]
let hundreds = [100: "Hundred"]
let thousands = [1000: "Thousand"]
func convertInt(num: Int) -> String{
var length = num.count
var output = ""
switch length {
case 1:
calculateOne(num)
case 2:
calculateTwo(num)
case 3:
calculateThree(num)
case 4:
calculateFour(num)
}
}
func calculateOne(num: Int) -> String {
return singleDigit[num]
}
func calculateTwo(num: Int) -> String {
if num > 10 && num < 20 {
return doubleDigit[num]
} else if num % 10 == 0 {
return tensMultiples[num]
} else {
return tensMultiples[num / 10] + doubleDigit[num % 10]
}
}
func calculateThree(num: Int) -> String {
return singleDigit[num / 100] + hundreds[100] + calculateTwo[num % (singleDigit[num / 100] + hundreds[100])]
}
func calculateFour(num: Int) -> String {
return singleDigit[num / 1000] + thousands[1000] + calculateThree[num % (singleDigit[num / 1000] + thousands[1000])]
}
let stringRandomArray = randomArray.map{convertInt(num: $0)}