Рассмотрим следующее определение сложить все элементы в гнездовой Iterable структуре Ints:Массив массивов, как Iterable из итерируемыми
def add(xss : Iterable[Iterable[Int]]) : Int = xss.map(_.sum).sum
Однако, оценивая следующее выражение дает ошибку типа:
scala> add(Array(Array(1,2,3)))
<console>:9: error: type mismatch;
found : Array[Array[Int]]
required: Iterable[Iterable[Int]]
add(Array(Array(1,2,3)))
^
Функция работает, как и ожидалось, с другими Iterables (например, списками). Как я могу избежать этой ошибки? В чем причина? Угадайте, что это связано с тем, что Arrays является родным с Java, но в этом случае не знает подробностей.
Thanks
Является ли этот метод должен принимать 'Iterable [Iterable [Int]]' вместо этого? Потому что это компилируется для меня. –
Вы правы. Я сделал ошибку, копируя код. Теперь это исправлено. Благодарю. Ошибка сохраняется, как указано. – pepeStck