メインコンテンツまでスキップ

異なる種類の組み合わせ

一般的な暗黙の型変換はありません。各演算子は、理解できる種類の組み合わせを少数だけ持っています。 それ以外の組み合わせでもエラーは発生しません。何も知らせずに Integer の 0 (大小比較では false) を返し、スクリプトは実行を続けます。これは意図的な動作で、1 つの想定外の値でアクションが途中で 中止されないようにするためです。その反面、誤った式は何も知らせずに失敗するため、結果がおかしいときは UtilityPrint で確認してください。

演算子受け付ける組み合わせ → 結果それ以外
+Text + Text → Text (連結)
Integer + Integer → Integer
Integer と Real の混在 → Real
0
- *Integer ∘ Integer → Integer
Integer と Real の混在 → Real
0
/Integer / Integer → Integer、0 方向に切り捨て (-7 / 2 は -3)
Integer と Real の混在 → Real
0 による除算 → 0 または 0.0、エラーなし
0
== !=同じ種類 → 値で比較 (Text は完全一致で大文字と小文字を区別、Window はハンドルで比較)
Integer と Real → 数値として比較 (5 == 5.0)
常に等しくない: 1 == true、"5" == 5、w == 0 はすべて false
< <= > >=2 つの数値 (Integer と Real の混在可) → 数値の大小
Text と Text → 序数比較、大文字と小文字を区別 (UTF-16 コード単位: "Z" < "a")
4 つとも false。そのため、ここでは !(a < b) は a >= b を意味しない
&& || !任意の種類、truthy かどうかで判定 → Bool
& | ^Integer ∘ Integer → Integer0 (Bool や Real のオペランドも該当: true & true は 0)
<< >>Integer を 0~63 の Integer でシフト → Integer。>> は符号を保持: -16 >> 2 は -4。0。シフト量が 0 未満または 63 を超える場合も含む
単項 -Integer → Integer、Real → Real0
~Integer → Integer (~0 は -1)0

種類間の変換:

変換元 → 変換先方法
Integer → RealReal と宣言された組み込み関数のパラメーターに渡すと自動的に変換。それ以外では n * 1.0 (Real との算術演算はすべて Real になる)
Real → IntegerMathRound(r) (0.5 は 0 から遠い方へ丸め)、MathFloor(r)、または MathCeil(r)
任意 → TextStringFormat("{0}", value, "")
Bool → Integerif (b) n = 1; else n = 0;
Text → 数値ユーザーが入力したもの (その地域の形式。桁区切りはその形式に従う必要があるため、日本語 (日本) のユーザーでは 1,5 は数値ではありません) には StringToNumber(text, false)、機械向けのテキスト (小数点は .、桁区切りなし) には true。整数値なら Integer、それ以外は Real。数値でない可能性がある場合は先に StringIsNumber を使用 (この例を参照)。
数値 → TextStringFromNumber(n, decimals, invariantCulture)。decimals を -1 にすると必要なだけの桁数
Integer → 16 進の Textこれを行う組み込み関数はありません。シフトを使って組み立てます (この例を参照)。