Packing Your Bag – Variables and Other Containers


Variables aren’t the only kind of container in SenseTalk, and they have some unusual characteristics. Before packing the bag for your adventure it’s a good idea to understand just what sort of container it is!
多くのスクリプト言語と同様に、SenseTalkの変数は事前に宣言しなくても使用できます。他の多くの言語とは異なり、変数に値を格納する前に使用した場合、変数名はその名前として評価されます…
put Hello --> Hello
…ただし、定義済み変数の場合は除きます。pi や copyrightSign などの定義済み変数は定数のように考えることができますが、必要に応じて変更できる点が異なります(つまり、通常の変数として使用できます)。すべての定義済み変数を確認するには、次のコマンドを実行してください(注: predefinedVariables は変更可能なグローバルプロパティです)。
put the predefinedVariables
変数には型がありません。どの変数にも任意の型の値を含めることができ、また、実行中の異なるタイミングでは、特定の変数に異なる型の値を含めることができます。
SenseTalkはユーザーの要望に応えようとします。文字列値が変数に格納 され、その変数が算術演算に使用される場合、SenseTalkは可能な場合は自動的に文字列値を数値に変換し、演算を続行します。
詳細については、定数と定義済み変数を参照してください。
比較
変数は型付けされていないため、2つの値の等価性(または不等価性)を比較する場合、比較の種類は値自体の型によって異なります。SenseTalkはまず、両方の値が有効な数値かどうかを確認します。両方とも数値の場合、数値比較が行われます。通常はこれが望ましい動作ですが、必ずしもそうとは限りません。数値比較ではなくテキスト比較を強制するには、オペランドの一方または両方の後に「as text」を指定します。テキスト比較は、デフォルトで大文字と小文字を区別しません。詳細については、「比較演算子」を参照してください。
put 7.00 is "007" --> True (a numeric comparison is performed)
put 7.00 is "007" as text --> False