gpt4 book ai didi

scala - Scala- block 不能包含声明

转载 作者:行者123 更新时间:2023-12-04 22:19:45 26 4
gpt4 key购买 nike

我要在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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com