私はスカラー言語の初心者ですが、私はスカラーのAny
クラスと混同しています。スカラーのクラス
def f(x: Any) = println(x)
は、コードの上にあるx
変数は、任意のデータ型であってもよいことを表すx
はなぜ、任意の型を受け入れることができるかどうか
def f(x:Any)=x+5
<console>:13: error: type mismatch;
found : Int(5)
required: String
def f(x:Any)=x+5
:(例:int型、文字列など)
書き換えコード私はエラーを上回っています。私はの理解をスカラーに混同しているかもしれません。私を修正してください。 m
がA
によって定義されている場合、あなただけのタイプA
の値x
にメソッドm
を呼び出すことができる静的型付け言語で
もし 'x'がどんな型であってもよいなら、あなたはいつも5を加えることができると確信することはできません。' f( "hello"); ' –
@ArnaudDenoyelleあなたは 'int'を' String'に追加することができます。より良い例は '+'演算子をオーバーライドしないクラスです。 – SamTebbs33
実際、 'A <:Any''と' B''の 'b'のインスタンス' a'の場合、 'val c = a + x'という形式の式は実際に' a。+(x ) 'これはあなたのクラスAが' def [B、C] +(b:B): 'メソッドを持っている場合にのみ動作することを意味します。 –