Scala обновляет элементы массива - PullRequest
12 голосов
/ 22 февраля 2012

Я никогда не думал, что задам такой простой вопрос, но как мне обновить элемент массива в scala

Я объявил внутреннюю функцию внутри своего объекта Main, и у меня есть что-то вроде

object Main
{
    def main(args: Array[String])
    {
        def miniFunc(num: Int)
        {
            val myArray = Array[Double](num)
            for(i <- /* something*/)
                myArray(i) = //something
        }
    }
}

но я всегда получаю исключение. Может ли кто-нибудь объяснить мне, почему и как я могу решить эту проблему?

1 Ответ

14 голосов
/ 22 февраля 2012

Можете ли вы заполнить недостающие детали? Например, что идет, где комментарии? Что является исключением? (Всегда лучше задать вопрос с полным примером кода и прояснить , в чем проблема.)

Вот пример построения и обновления массива:

scala> val num: Int = 2
num: Int = 2

scala> val myArray = Array[Double](num)
myArray: Array[Double] = Array(2.0)

scala> myArray(0) = 4

scala> myArray
res6: Array[Double] = Array(4.0)

Возможно, вы предполагаете, что num представляет размер вашего массива? Фактически, это просто (единственный) элемент в вашем массиве. Может быть, вы хотели что-то вроде этого:

    def miniFunc(num: Int) {
        val myArray = Array.fill(num)(0.0)
        for(i <- 0 until num)
            myArray(i) = i * 2
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...