我正在尝试关注但是得到错误“类型为Array [Int]的变量arr不接受类型参数。”
object try_arr
{
def main(args: Array[String])
{
var arr = new Array[Int](3)
for(i<- 1 to 3)
{
val num = scala.io.StdIn.readInt()
arr[i] = num
}
}
}
答案 0 :(得分:3)
正如Simon已经指出的那样,你试图将java语法应用于scala代码 - 在scala []中用于指定类型,并且为了访问你应该使用的数组元素() ,例如xs(3)
我想解决这个问题的最简单方法是使用Array.fill方法:
object FillTheArray {
def main(args: Array[String]) {
val userInput = Array.fill(3) {
scala.io.StdIn.readInt()
}
}
}
答案 1 :(得分:1)
在scala中,您可以像这样
索引数组arr(i) = num
答案 2 :(得分:1)
更多的旁注,请考虑使用不可变对象的更多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
证明了代码。
这与创建可变数组和使用用户输入更新每个位置(由范围中的每个值引用)的更为迫切的方法形成对比。
答案 3 :(得分:0)
使用以下声明
a(i)= scala.io.StdIn.readInt()
答案 4 :(得分:0)
不能为1到3,因为数组索引从0开始并且在0到2之间。否则显示错误ArrayOutOfBound异常。
代码: var arr = new ArrayInt
for(i<- 0 to 2)
{
print("Enter number")
val num = scala.io.StdIn.readInt()
arr(i) = num
}
arr.foreach((element:Int)=> print(element + " "))