swift 1.2 if loop для переключения оператора
У меня есть следующий If-Statment, и мне было интересно, как этого можно достичь с помощью оператора switch?
Я пытаюсь представить целое значение в массиве в виде строки (например, 1 == "Ян")
func assigningMonthName([Data]) {
for i in dataset.arrayOfDataStructures {
if (i.month) == 1 {
println("Jan")
}
else if (i.month) == 2 {
print("Feb")
}
else if (i.month) == 3 {
print("March")
}
else if (i.month) == 4 {
print("April")
}
else if (i.month) == 5 {
print("May")
}
else if (i.month) == 6 {
print("June")
}
else if (i.month) == 7 {
print("July")
}
else if (i.month) == 8 {
print("August")
}
else if (i.month) == 9 {
print("September")
}
else if (i.month) == 10 {
print("October")
}
else if (i.month) == 11 {
print("November")
}
else if (i.month) == 12 {
print("December")
}
else {
println("Error assigning month name")
}
}
}
любые ответы будут оценены:)
2 ответа
Решение
Хотя вы можете использовать switch
по сути это просто еще один способ написать if-else
так что в вашем коде нет больших улучшений:
switch i.month {
case 1:
print("Jan")
case 2:
print("Feb")
...
}
Как насчет использования массива?
let monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "Sept", "October", "November", "December"]
print(monthNames[i.month - 1])
Система фактически уже содержит названия месяцев, они даже локализованы:
let monthNames = NSDateFormatter().monthSymbols;
print(monthNames[i.month - 1])
Попробуй это:
switch i.month {
case 1:
print("Jan")
case 2:
print("Feb")
...
default:
print("default value")
}