У меня есть, казалось бы, очень простой вопрос Scala, который сводит меня с ума. Это:Определите функцию в Scala, которая принимает массив подстановки в качестве параметра
class A
class B extends A
class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
Не компилируется. В нем говорится:
scala> class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
<console>:8: error: type mismatch;
found : (some other)_$1(in method foo)
required: _$1(in method foo)
class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
Я думаю, что понимаю; это потому, что нет гарантии, что все элементы «А» будут одного типа? Есть ли способ сделать эту работу, или я просто делаю что-то странное?
Большое спасибо за помощь. Это исправило эту проблему, но проблема на самом деле идет глубже, и проблема в том же ключе, но я задаю новый вопрос здесь: http://stackoverflow.com/questions/15723338/swapping-elements-of-two -arrays-в-Скал-с подстановочным типом. Я бы очень признателен, если бы вы могли помочь с этим. –