破壊的変更の一覧
AliceScriptの歴史を通じて、AliceScriptのバージョン間および異なる実装間で高いレベルの互換性を維持することに力が注がれてきました。 多くの開発者は、AliceScriptの異なる実装間の互換性とともに、AliceScriptの特定の実装のバージョン間についても高いレベルの互換性を期待します。 特に、以前のバージョンのAliceScript用に書かれたコードは、AliceScriptの新しいバージョンでもシームレスに動作することを期待します。 また、多くの開発者は、新しくリリースされたAliceScriptにあるAPIが、それらのAPIが導入された初めのバージョンとも互換性があると期待します。
この記事では、AliceScriptまたはAlice.Runtimeに対して行われた変更のカテゴリと、それがアプリケーションの互換性に与える影響について説明します。
Typeプロパティ
AliceScriptRC1以前のバージョンでは、Typeプロパティはその値の型を表す文字列表現を返していました。AliceScriptRC2からはTypeプロパティはtype
型を返すため、戻り値の型が変わります。
この変更による影響を緩和するために、type
型からstring
型への一方向の暗黙的な変換が用意されているため、この変更は承認されました。
定義されていない変数への値の代入の禁止
AliceScriptRC1以前のバージョンでは、定義されていない変数にもvar
キーワードを使用しないで変数を定義することができました。これは未アクセスの変数に対して値が存在するか確認できないという潜在的な欠陥が存在しているため使用できなくなります。次のコードはAliceScriptRC1以前では動作していましたが今は動作しません。
a = 12345;
AliceScriptRC2以降でこれと同じ動作を行うことができる唯一の方法は次の通りです。
var a = 12345;
変数を定義した後の代入に関する動作に変更はありません。この変更は承認されました。