У меня есть двумерный массив, и я хочу применить функцию к каждому значению в массиве.
Вот с чем я работаю:
scala> val array = Array.tabulate(2,2)((x,y) => (0,0))
array: Array[Array[(Int, Int)]] = Array(Array((0,0), (0,0)), Array((0,0), (0,0)))
Я использую foreach для извлечения кортежей:
scala> array.foreach(i => i.foreach(j => println(i)))
[Lscala.Tuple2;@11d559a
[Lscala.Tuple2;@11d559a
[Lscala.Tuple2;@df11d5
[Lscala.Tuple2;@df11d5
Давайте сделаем простую функцию:
//Takes two ints and return a Tuple2. Not sure this is the best approach.
scala> def foo(i: Int, j: Int):Tuple2[Int,Int] = (i+1,j+2)
foo: (i: Int,j: Int)(Int, Int)
Это выполняется, но необходимо применить к массиву (если он изменчив) или вернуть новый массив.
scala> array.foreach(i => i.foreach(j => foo(j._1, j._2)))
Не должно быть плохо. Мне не хватает некоторых основ, я думаю ...