scala 在包中定义类型
scala define type in a package
这个问题已经有人问过了,但我还需要澄清一下。我想在包中定义一个类型,然后在包的类中使用它。
这是我写的:
/**
* 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好像没有被识别。
正确的写法是什么?
您声明它的方式使 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
}
这个问题已经有人问过了,但我还需要澄清一下。我想在包中定义一个类型,然后在包的类中使用它。
这是我写的:
/**
* 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好像没有被识别。 正确的写法是什么?
您声明它的方式使 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
}