2015-06-14 4 views
6

Примечание: Это относится также к Swift 3,0Ошибка при использовании уменьшения() в Swift 2,0

При попытке использовать функцию reduce, я получаю сообщение об ошибке сказав:

reduce is unavailable: call the 'reduce()' method on the sequence

Я уже выяснили, как это сделать с помощью функции enumerate(), но я не могу решить эту проблему. Вот строка кода возврата ошибки:

var hashValue: Int { 
    return reduce(blocks, 0) { $0.hashValue^$1.hashValue } 
} 

ответ

15

Вы исправить это так же, как вы неподвижную вашу проблему с enumerate(). В Swift 2 сокращение было удалено как глобальная функция и было добавлено как метод экземпляра для всех объектов, которые соответствуют протоколу SequenceType через расширение протокола. Использование выглядит следующим образом.

var hashValue: Int { 
    return blocks.reduce(0) { $0.hashValue^$1.hashValue } 
} 
+0

Большое вам спасибо! Я не был уверен, из-за двух значений в reduce(). –

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