2016-04-29 9 views
0

В следующем примере раскрывается пример, приведенный в этой ссылке swift-evolution, в котором описывается только один параметр для списка аргументов. Любое предложение о том, как исправить список аргументов с двумя параметрами?Как исправить эту футлярную функцию в Swift?

// Before: (yields warning) 
func curried(x: Int)(y: String, z:String) -> Float { 
    return Float(x) + Float(y)! + Float(z)! 
} 

// After: (this is not working) 
func curried(x: Int) -> (String, String) -> Float { 
    return {(y: String, z: String) -> Float in 
     return Float(x) + Float(y)! + Float(z)! 
    } 
} 

Xcode 7.3 еще сообщает второй метод, как «синтаксис Curried функция объявления будут удалены в будущей версии Swift, используйте один список параметров.»

Любая помощь приветствуется.

+0

Невозможно воспроизвести. Второй метод компилируется без предупреждений и работает как ожидалось в Xcode 7.3. –

+0

@MartinR В 7.3 есть ошибка, в которой предупреждение не исчезает, даже когда код исправлен. Вероятно, он вставил в первой версии, получил предупреждение, заменил его второй версией и получил ошибку, где осталось прежнее предупреждение. Отсюда мой ответ ниже. – matt

ответ

1

Игнорировать предупреждение Xcode 7.3 о второй версии. Если вы очистите папку сборки, предупреждение, вероятно, исчезнет. Что более важно, вторая версия делает Работа - она ​​компилируется в Swift 3, что все, что имеет значение.

+0

Гоша, он работает. Вышеприведенный пример кода - это дистиллированная версия более крупного метода, который я пытаюсь исправить, и кажется, что я это сделал - просто нужно было очистить сборку (полностью). – Christopher

Смежные вопросы