もし文などでの比較と、無に関連する仕様を変更しました。
比較に関して、1.6から1.7にかけて意図しない仕様の変更が発生しておりました。次の内容が現時点での確定した仕様となりますので、ご確認ください。ご迷惑をお掛けします。
- 文字列と無の比較に関する仕様変更
- 文字列の無に関する扱いの変更
- 配列の比較に関する仕様変更
文字列と無の比較に関する仕様変更
文字列の値と無を比較する際、「」(0文字の文字列)と無は等しい、と判定するように、1.6の挙動に戻しました。
以前の1.7.1000~1.7.1132のバージョンでは、0文字の文字列と無は異なる、と判定していましたが、これは意図しない変更でしたので、これまでの挙動に戻すこととしました。
内容1は、「」
もし内容1が無なら
「等しい」と表示する //1.6.xおよび1.7.1133以降(正)
そうでなければ
「異なる」と表示する //1.7.1000-1.7.1132以前
もし終わり
文字列の無に関する扱いの変更
文字列型では、無を「」(0文字の文字列)へ変換するように仕様変更しました。
1.7.1133以降では文字列型の変数に無という状態を持ちません。文字列型の変数に無を代入すると「」が代入されます。
また、明示的に文字列型であると宣言した種類変数の初期値も、無から「」(0文字の文字列)へ変更となります。
これは文字列と無の比較に関する仕様に合わせる形で変更しました。
【A:文字列】は、無
//1.6および1.7.1132以前ではエラー。1.7.1133以降は 0
Aの文字数を表示する
1.7.1134-1141での変更点 (2022/8/6)
無と空文字の不等号による比較について、等号比較と挙動が行っておりましたので、1.7.1142で修正しました。
配列の比較に関する仕様変更
配列型の比較については、オブジェクトの比較となるように仕様変更しました。
1.7以降は、配列は参照型であるという原則に基づいて、種類と同様に同じオブジェクトであるかどうかの比較に変更しました。そのため、要素の内容や個数が同じでも、違う配列として判定されます。
なお、1.6では、配列どうしを比較すると文字列表記に変換されてから比較していました。1.6と同じように、配列の内容で比較したい場合には「内容」設定項目で比較してください。
一覧1は、{1,2,3}
一覧2は、{1,2,3}
もし一覧1が一覧2なら
「等しい」と表示する //1.6以前はここ
他でもし一覧1の内容が一覧2の内容なら
「内容が等しい」と表示する //1.7以降はここ(正)
そうでなければ
「異なる」と表示する
もし終わり
1.8, 1.9についても上記の変更点が反映しています。
本件は不具合掲示板でのユーザさまからのご指摘により発覚いたしました。ご報告ありがとうございます。今後も1.6までの仕様を基本として、不確定だった仕様を整理して確定していく方針ですのでご了承ください。