2016-02-21 5 views

ответ

1

В Скале индексировании массива, как это

arr(i) = num 
3

Как уже отмечалось Семён, вы пытаетесь применить синтаксис Java в код лестницу - в Скале [] используются для определения типа и для доступа к элементам массива, которые вы должны использовать(), например xs(3)

Я думаю, чистейший способ решить эта проблему, является использование метода Array.fill:

object FillTheArray { 
    def main(args: Array[String]) { 
    val userInput = Array.fill(3) { 
     scala.io.StdIn.readInt() 
    } 
    } 
} 
0

Больше стороны записки, рассмотреть этот более Scalish подхода с неизменяемыми объектами,

val xs = for (i <- 1 to 3; num = scala.io.StdIn.readInt()) yield num 

, где каждое значение в диапазоне (1 to 3) составляет , отображаемое на пользовательский ввод. Результирующий вектор (xs) могут быть преобразованы в массив,

xs.toArray 

Аналогично

(1 to 3).map(_ => scala.io.StdIn.readInt()).toArray 

доказывает terser код.

Это противоречит более императивному подходу к созданию изменяемого массива и обновлению каждой позиции (отнесенной каждым значением в диапазоне) с помощью пользовательского ввода.

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