Я создаю перечисление, содержащее все месяцы года. Вычисленное значение перечисления возвращает университетские семестры на основе входного месяцаПосле компиляции не появилось предупреждение, почему оно меня предупреждает?
enum Month{
case January, February, March, April, May, June, July, August, September, October, November, December
var schoolSemester: String {
switch self {
case .April, .September, .October, .November, .December:
return "Autumn"
case .January, .February, .March, .April, .May:
return "Sping" // Here comes the warning
default:
return "Not in the school year"
}
}
}
var whichSemester = Month.February
print(whichSemester.schoolSemester)//even though the warning says this will never be executed, but it was executed!
Question1: Почему Xcode продолжает говорить мне, что второй случай никогда не будет выполнен (что неправильно я исполнить дело по назначить февраля в месяц)
Вопрос 2: вычисляется свойству ленивый недвижимость?
Большое спасибо за ваше время и помочь
Вы указали случай '.April' * дважды * ... –
Ложное свойство - это не то же самое, что вычисленное свойство. Вычисленное свойство оценивается каждый раз, когда вы обращаетесь к нему - ленивое свойство оценивается только при первом доступе к нему, а затем сохраняется. – Hamish
@ originaluser2 Как насчет второго раза доступа к ленивому имуществу? будет ли оно обновляться и храниться снова? – SLN