这个问题已被提出,但我仍需要澄清一些问题。我想在包中定义一个类型,然后在包的类中使用它。
这就是我写的:
/**
* Created by donbeo on 28/12/15.
*/
package tiktaktoe
package object tiktaktoe {
type Pos = (Int, Int)
}
class Board {
val board = List.fill(3, 3)(0)
def isValidPosition(pos:Pos):Boolean = true
}
class Player {
def nextMove(pos:Pos):Board = new Board
}
但Pos似乎并未得到认可。 写它的正确方法是什么?
答案 0 :(得分:4)
您声明它的方式使package object tiktaktoe
位于package tiktaktoe
内。因此,完全限定的包名称为tiktaktoe.tiktaktoe.Pos
。通常,包对象在一个名为package.scala
的单独文件中声明,它们应该在上面的中声明所需的目标(在这种特定情况下,没有)。
如果您有更长的包裹名称:
package.scala:
package longer.name
package object tiktaktoe {
type Pos = (Int, Int)
}
Board.scala:
package longer.name.tiktaktoe
class Board {
val board = List.fill(3, 3)(0)
def isValidPosition(pos:Pos):Boolean = true
}