2
我有一個看似非常簡單的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) }}
我想我明白了;是否因爲不能保證「A」的所有元素都是同一類型?無論如何做這項工作,或者我只是做些什麼janky?
非常感謝您的幫助。這解決了這個問題,但問題實際上運行的更深,問題也是類似的,但我在這裏發佈了一個新問題:http://stackoverflow.com/questions/15723338/swapping-elements-of-two -arrays合階與 - 通配符型。我真的很感激你是否可以幫助那個人。 –