私が理解しているように、decltypeとautoは、何かの型が何であるかを理解しようとします。 我々が定義する場合: int foo() {
return 34;
}
を次に両方の宣言は有効です: auto x = foo();
cout << x << endl;
decltype(foo()) y = 13;
cout << y << endl;
あなたはdecl
誰かが次のコードをコンパイルする理由を説明できますか? Option("foo") match {
case x: List[String] => println("A")
case _ => println("B")
}
これは、タイプの消去に関する警告が表示されますが、まだコンパイルされます。私はの代わりに"foo"にマッチした場合と同じように、これが型エラーを投げる
このイディオムは、階段の本の中でかなりの数回表示されます:テキストブックにいくつかのポイントをしようとしてほか val b:A = new B
または val b = new B
val b2:A = b
、なぜあなたが宣言したいと思います推測されるタイプのものとは異なるタイプですか? ところで、これはどのような名前ですか?