変数を定義している場合、次のように変数を定義/宣言するために完全に有効であると表示されます。Javaでは、{a、b、c、...}の配列は短命で、なぜ不適切なのですか?
double[][] output = {{0,0},{1,0}};
しかし、あなたは値を返している場合、次のように書くことが無効であると表示されます:
public double[] foo(){
return {0,1,2}
}
私は内部的には両方とも同じ動作をしていると考えていました。 Eclipseは、少なくとも、同意しない。誰が違いがあるのか、それ以外はどこで見られるのか、前者の例を受け入れて後者を拒否することが有益な理由は誰にも分かりますか?
編集:大丈夫ですが、初期化するときは適切ですが、あいまいさはありません...変数名から変数の型を解釈することはできませんでした(再定義する場合すでに初期化された変数)、またはリターン時(JVMは関数の戻り値の型を見ることができる)?暗黙の型を禁止するルールの特殊なケースは何ですか?一般規則に明示的な型が必要なのは何ですか?
"宣言の際にのみ受け入れられます。"どうして?なぜreturn文中にないのですか? –
@ JohnP言語で許可されていないためです。私が知る限り、それに対して良い事例はありません(私は、コンパイラが作成が安全であることを確実にするために、より多くの型推論をしなければならないかもしれないと思います)。 – Jeffrey