Недавно я наткнулся на новейший курс Стэнфордского программирования для iOS, который вел Пол Хагерти. Ура!
Я прошел Урок 01 без проблем. Сейчас я работаю над Уроком 02.
Возникла проблема на 42-й минуте, когда Пол показывает, как перегрузить функцию performOperation
. Идея состоит в том, чтобы иметь два определения: одно для функции с двумя аргументами (+, -, *, /), а другое для функции с одним аргументом, например. sqrt
.
Похоже, что с тех пор, как урок был опубликован, Swift был обновлен/изменен, и это больше не работает, как показано в уроке.
Кто-нибудь знает, как заставить его работать? Я искал вокруг и не могу найти ничего полезного.
func performOperation (operation: (Double, Double) -> Double) {
if operandStack.count >= 2 {
displayValue = operation (operandStack.removeLast(), operandStack.removeLast())
enter ()
}
}
func performOperation (operation: Double -> Double) {
if operandStack.count >= 1 {
displayValue = operation (operandStack.removeLast())
enter ()
}
}
Заранее спасибо!
swift
) и не упоминает другие теги. Так что да, не нашел. Итак, у меня есть обходной путь, спасибо. Но я не чувствую, что проблема решена. Преобладает мнение, что Objective-C не поддерживает перегрузку и поэтому не работает, но тогда почему он работал в более ранней версии Swift? Это осталось без ответа. Даже если компилятор его просто не обнаружит, он все равно вылетит, верно? Но не разбился. В демо работало отлично. - person Zonker.in.Geneva   schedule 28.04.2015