投稿日 | 22/05/10-19:49 |
---|---|
投稿者 | 陸 |
参照先 | https://riku22.net |
お世話になっております。
下記のサンプルで、以前のバージョンではすべて「○」となっていたのですが、1.7.1131および1.9.1129では「×」になってしまうようです。
----- サンプルソース -----
内容1は、「」
内容2は、{}
(内容1が無)を表示
(内容2が無)を表示
(内容2が{})を表示
--------------------
もし可能でしたら、以前のバージョンと同じような仕様になると助かります。
環境は、Windows11 21H2 64ビット、プロデル 1.7.1131、1.9.1129です。
以上、よろしくお願いいたします。
投稿日 | 22/05/16-20:39 |
---|---|
投稿者 | ゆうと |
参照先 |
お世話になっております。
> 下記のサンプルで、以前のバージョンではすべて「○」となっていたのですが、1.7.1131および1.9.1129では「×」になってしまうようです。
無の比較ですが、仕様としては次の通りの結果になります。
1.(内容1が無)を表示 //○
2.(内容2が無)を表示 //× (こちらは以前から×で、正しい結果です)
3.(内容2が{})を表示 //× (以前のバージョンは○でしたが×に仕様変更となります)
1.については、空(文字数が0)の文字列が無と等しいという特別な仕様が歴史的に正しいので
1.7.1133で戻しました。
2.については、×が正しいです。
「無」は「値がない」ことを表す状態です。
「内容2」変数の中身には、要素数が0個であっても配列が入っている状態ですので
無とは異なります。これは正しい挙動です。
3.については、以前のバージョンでは○でしたが
×に仕様変更させて頂きます。(今回発覚しましたので今後ブログに記載します)
配列は、参照型の値ですので、
要素の値や個数が等しくても違う配列となり、比較結果は×となります。
参照型については、ブログの記事に書かれていますので、こちらをご覧下さい。
https://wp.utopiat.net/2020/09/2183/
なお、過去のバージョンと同じように配列どおしの比較をしたい場合は
(内容2の内容が{}の内容)を表示
などとして、文字列型に変換してから比較してください。
(これの比較は過去のバージョンと同じ挙動です)
仕様変更でお手数お掛けしますので
ご了承ください。
ご指摘ありがとうございます。
投稿日 | 22/05/20-20:32 |
---|---|
投稿者 | 陸 |
参照先 | https://riku22.net |
こんばんは。
返信が遅くなり、申し訳ありません。
「(内容1が無)を表示」は、最新版で修正されていることを確認しました。
ありがとうございます。
「(内容2が{})を表示」も了解しました。
配列が空かどうかを調べるのにかなり多用していたので、ぼちぼち手元のプログラムを修正していきます。
ありがとうございました。
それでは。
- WebForum -