0
私はまだScalaを初めてお使いで、パッケージオブジェクトについて質問があります。タイプ定義のパッケージオブジェクト
type CommandArgument = scala.Any
type CommandProcessor = Command => CommandArgument => Unit
私はにこれらのタイプの定義を置く傾向がある:私はコマンドを処理する関数を定義したいと思い、今
trait Command
case object Help extends Command
:
は、私は、次の特性を含むパッケージcom.pack.age.command
を持っていますパッケージオブジェクト
package object command {
type CommandArgument = scala.Any
type CommandProcessor = Command => CommandArgument => Unit
}
これらのタイプはすべてのコマンドで同じですから、私にはかなり論理的に見えます。
しかし、Scalaではそういうのが一般的ですか?
は、このような目的のためにタイプエイリアスを宣言一般的ですが、Any'が良くない '使用。それぞれの 'Command'サブクラスを定義するときには、' CommandArgument'の型パラメータを使うのがよいでしょう。 – Naetmul
@Naetmulは「Any」型は恐ろしいと言います。私がこの点について教えてくれる 'akka'に関する次の暴言を見てください:http://stew.vireo.org/posts/I-hate-akka/ – Yaneeve
@Naetmul実際に私は' Option [String] '引数として、より一般的な型を提供することを望んでいた。 –