次の驚くべき行に遭遇しました。
int x = 7;
x += 0.5;
明らかに合法的な構文です!加算後、x はまだ 7 であるため、double は int にキャストされ、0 に切り捨てられますが、これはコードで明示的なキャストなしで行われます。他の誰かがこれに驚いていますか?ここでの根拠は何ですか?
私の質問を明確にするために編集してください:誰かがこの決定に正当な理由を与えることができますか? 他のすべての場所で明示的なキャストを要求するのはひどい決定だと思いますが、言語でこの 1 つの場所を黙ってデータを破棄する必要があります。何か不足していますか?