メインコンテンツまでスキップ
バージョン:25.2

現地の習慣を理解する

Understanding Native CustomsUnderstanding Native Customs

Keep in mind that on this expedition you will encounter a number of differences specific to SenseTalk. Get familiar with these native customs so you can write scripts with ease!


SenseTalkは人間中心のプログラミング言語です。プログラマーではなく、一般の人々が使い慣れていることを目指しています。そのため、他の言語で使用されているような剰余演算子を%で表すことはできません。SenseTalkでは、%はパーセント演算子です。

SenseTalkは非常に寛容です。例えば、リストから範囲外の値を要求しても例外は発生せず、単にemptyを返します。関数が値を返さずに終了した場合も、emptyを返します。コマンドまたは関数の呼び出しで、宣言された数よりも少ないパラメータが渡された場合、残りの値の初期値はemptyになります。ここでパターンに気付くはずです。emptyは定数であり、その値は空文字列(""と同じ)です。

一般的な慣用句

通常、SenseTalk は会話形式で記述されるため、equals 比較演算子は、=(または<>) 記号ではなく、is (または不等号の場合は is notisn't) という単語を使用して記述されることが多いです。

場合によっては、演算子の意図をより自然で分かりやすい方法で表現するために、同義語が多数存在することがあります。例えば、「より大きい」(または「>」)は数値を比較する自然な方法ですが、文字列や日付と時刻を比較する場合は、あまり明確ではない場合があります。

put 5 is more than 3
put "c" comes after "a"
put "3:00 PM" is later than "5:00 AM" as time

コメント(行末まで)は、2つのダッシュ、(エムダッシュ)、または//で始めることができます。ハッシュ(#)も使用できますが、SenseTalkの標準スタイルとはみなされないため、推奨されません。ブロックコメントは(**)で囲み、ネストすることができます。二重アスタリスク(** **)を使用したブロックコメントは、EggDocスクリプトによってスクリプトとハンドラのドキュメント生成に使用されます。

ブール値

truefalseyesnoonoff はすべて有効なブール値です。Truefalse は定数で、その他の値は特別な扱いを受けますが、技術的には変数として使用できます(ただし、限定されたコンテキスト内で意味が非常に明確でない限り、このような使用は強く推奨されません)。ブール値のいずれかに等しいテキスト文字列("YES" など)もブール式で有効です。また、空文字列(false として扱われます)も有効です。数値(0 と 1 を含む)は有効なブール式ではありません。

「yes」、「no」、「on」、「off」は定数ではありませんが、特別な扱いを受けます。つまり、「true」、「yes」、「on」はすべて互いに等しいとみなされ、falseも同様です。必要に応じて、グローバルプロパティ「booleanComparison」を「normal」ではなく「strict」または「lenient」に設定することで、この動作を変更できます。