scala> val a = Int
a: Int.type = object scala.Int
scala> val a = String
<console>:11: error: object java.lang.String is not a value
val a = String
^
String
を値にするために、スカラがjava.lang.String
の周りに薄いラッパーを作成しなかったのはなぜですか?主な型(String
)の1つが式で使用できないか、関数に渡されたり、関数から返されたりしないときは、非常に制限的ではありませんか?文字列が値でないのはなぜですか?
*主要な型(文字列)の1つが式で使用できない場合や関数から渡された/返されない場合には、それは非常に制限的ではありませんか?値に 'String'の束縛が伝えようとしているものがわからない –
@YuvalItzchakov私は動的に型付けされた言語(例えば、実行時に何かの型を確認したいかもしれません)に慣れています。静的言語では、型を変数に格納するのは有用ではないと思います(コンパイル時に型が分かっているので)。つまり、「val a = Int」はスカラーで有効です。そのために少なくともいくつかの用途があるかもしれませんか? – max
'val tpe = typeOf [String]'や 'val cls = classOf [String]'を使うことができます。 IntはInt型のコンパニオンオブジェクトなので、 'val a = Int'は有効です。 – adamwy