У меня есть функция, которая делает Массивы определенного типа:Scala общие массивы инстанцирует
def mkArray[A:ClassTag:Ordering](size:Int):Array[A] = Array.ofDim[A](size)
И я хочу, чтобы сделать массив обр типа Int или строки в зависимости от строки ул так:
var arr = if(str=="i"){mkArray[Int](size)}else{mkArray[String](size)}
и теперь я пытаюсь добавить значения в массив следующим образом:
arr(n) = num.toInt // num is String like "123"
Но он говорит:
- type mismatch; found : Int required: _366 where type _366 >: Int
with String
Как я могу обойти это, сделав arr типа Array [Int] или Array [String] в зависимости от строки str?
Любая помощь с учётом, Thanks!
Вместо использования 'str' со значениями' "я" 'и т.д., можно использовать' mkArray [Int] 'непосредственно. Попробуйте быть более явным для компилятора. – tuxdna