0
我还是Scala的新手,对包对象有疑问。类型定义的包对象
我有一个包com.pack.age.command
其中包含以下特点:
trait Command
case object Help extends Command
现在,我想定义一个函数来处理命令:
type CommandArgument = scala.Any
type CommandProcessor = Command => CommandArgument => Unit
我倾向于把这些类型定义成一个包对象。
package object command {
type CommandArgument = scala.Any
type CommandProcessor = Command => CommandArgument => Unit
}
的原因是,这些类型相同的所有命令,所以它看起来非常逻辑上给我。
但是在Scala中这样做很常见吗?
声明类型别名用于上述目的是共同的,但使用'Any'不好。也许你最好在定义每个Command子类时为CommandArgument使用一个类型参数。 – Naetmul
正如@Naetmul所说的“任何”类型都很可怕。看看下面关于'akka'的咆哮,我觉得这点很有教育意义:http://stew.vireo.org/posts/I-hate-akka/ – Yaneeve
@Naetmul其实我想用'Option [String] '作为一个参数,但我想提供更一般的类型。 –