我要在2D向量中搜索字符的位置时使用以下方法。
def findChar(c: Char, levelVector: Vector[Vector[Char]]): Pos = {
var pos: Pos
pos.x = levelVector.indexWhere(row => row.indexOf(c) > 0)
pos.y = levelVector(pos.x).indexOf(c)
pos
}
pos
有两个整数字段,可记住x和y轴上的位置但是,在
var pos: Pos
行上,我收到错误Block cannot contain declarations
。为什么该块不能包含声明?
我的代码有什么问题?
最佳答案
你的问题是你在写var pos:Pos
您应该改写:
val pos = new Pos(...)
无论如何,在阅读代码时,它是用scala编写的Java类型。
如果你可以一成不变,那就这样吧。
在scala中,您应该使用变量实例化您的类。这意味着您不能更改类的状态,即像
pos.x = //something
pos.y = //something
正在更改变量pos的状态。
我建议是一成不变的
IE
val x = //something
val y = //something
val newPos = Pos(x,y)
玩得开心
关于scala - Scala- block 不能包含声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34253356/