ActBa64 の不具合ではなく、ActiveBasic 4.20 と同じ挙動として把握しておく項目。
言語の正本は language.md。ActiveBasic と結果がずれる点は different.md。
TRUE (=1) と関係演算の真 (-1) が一致しないTRUE / FALSE は 1 / 0(Win32 慣習・BasicHelp)。= など)の式の値は、真 -1、偽 0。(TRUE = TRUE) は -1 になるが、(-1 = TRUE) は -1 = 1 で偽になり、連鎖比較 (TRUE = TRUE) = TRUE は直感とずれる(AB 4.20 も False)。#console
If (TRUE = TRUE) = TRUE Then
Print "True"
Else
Print "False" ' AB 4.20 / ActBa64 ともこちら
End If
If (-1 = -1) = -1 Then
Print "True" ' こちらは真
Else
Print "False"
End If
比較結果そのものを扱うときは -1 / 0 リテラルや中間変数を使う。回帰: test/t_true_chain.abp。
true / falseAB 4.20 では true / false は識別子として無効。ActBa64 も TRUE / FALSE(大文字)のみ組み込み。小文字は未定義変数としてエラーになる。
定数・変数・Sub/Function・Declare 名・Type/Class 名は定義どおりの綴りで参照する(TRUE ≠ true、Foo ≠ foo)。言語キーワード、組み込みランタイム(FillMemory / memcpy / malloc 等)だけ大小無視。Win32 API は api.idx の Declare 名(および Alias の裸名)と一致させる。