我有以下Scala代码片段,是包含更多类的更大源文件的一部分,包含私有字段,方法和公共方法:
class Grid {
private val cells = Vector(
Vector(new Cell, new Cell, new Cell),
Vector(new Cell, new Cell, new Cell),
Vector(new Cell, new Cell, new Cell)
)
private def tranpose(grid:Vector[Vector[Cell]]) : Vector[Vector[Cell]] = {
val newgrid = Vector(
Vector(grid(0)(0), grid(1)(0), grid(2)(0)),
Vector(grid(0)(1), grid(1)(1), grid(2)(1)),
Vector(grid(0)(2), grid(1)(2), grid(2)(2))
)
newgrid
}
// Determine winner or draw
def wins(symbol:Char):Boolean = {
val fullvec = Vector(symbol, symbol, symbol)
for(r<-cells)
if(r.equals(fullvec))
true
// Transpose the grid into a new one and make the same check again
val transpgrid = transpose(cells)
for(r<-transpgrid)
if(r.equals(fullvec))
true
// Now check diagonals
val maindiag = Vector(cells(0)(0), cells(1)(1), cells(2)(2))
val seconddiag = Vector(cells(0)(2), cells(1)(1), cells(2)(0))
if(maindiag.equals(fullvec) || seconddiag.equals(fullvec))
true
false
}
在val transpgrid = transpose(cells)
方法中的代码行wins
中,scala
向我提供了以下消息:
jasonfil@hp ~/AtomicScala/examples $ scala TicTacToe.scala
TicTacToe.scala:69: error: not found: value transpose
val transpgrid = transpose(cells)
我尝试在调用this
之前添加关键字transpose
,但我没有运气。我是语言的新手,并且假设我在通话时犯了一些错误。
//编辑:我已经标记了此帖子以供主持人批准和删除,因为很明显我没有足够重视创建最小的例子(明显错字)。但是,我已经意识到我的这个代码的另一个错误是从代码区域中自由地不使用“return”关键字明确而不是它们各自方法的最后一行。昨天这给我带来了很多心痛,但我从心痛中学到了很多。
答案 0 :(得分:1)
您有拼写错误 - private def tranpose
应为private def transpose