Closed7

Crafting Interpretersやる

shuntakashuntaka

↑の実装を参考に、Javaで書きつつRustにコンバートするように頑張ろう

shuntakashuntaka

p67にJavaScriptの設計に関する筆者の意見が書いてあるのだけど、なかなか痛烈

shuntakashuntaka

p133に興味深い話が書いてあった。

「Javaにおける配列の共変(covariant)性」が原因で起こる「配列アップキャスト時の落とし穴」

以下のコードは、Javaは歴史的経緯で配列を共変にしているため、Integer[]をObject[]として使える反面、実行時エラー(ArrayStoreException)が発生しうる

Object[] stuff = new Integer[1];
stuff[0] = "not an int";

配列の共変によってコンパイラチェックが抜け落ちて、実行時に型不整合が露呈している

このスクラップは2025/01/08にクローズされました