式
式は、さまざまな演算子を使用して値を組み合わせて新しい値を生成します。例えば、非常に単純な式1+2は"+"演算子を使用して値3を生成します。SenseTalkは、多様なニーズに対応するための広範な演算子を提供します。
式のコンポーネントとして使用される値は、多様な型を持つことができます。それらは数値やテキスト文字列などの単純な値(Valuesで説明されています)であるか、またはコンテナの内容である値(Containers)であるかもしれません。さらに別の型の値は、functionによって提供されるものです。関数は、情報を取得 するための値の源で、その情報は変化する可能性があります。SenseTalkは、幅広い目的のための多くの関数を提供しています。関数の使用に関する情報は、Functionsを参照してください。
SenseTalkは「型レス」言語であるため、コンテナは任意の型の値を保存できます:数値、テキスト、日付、リストなどです。値は必要に応じて自動的に変換されるため、例えばテキスト値に対して数学的な操作を実行すると、SenseTalkはその値を内部的に数値に変換します。内部値をテキスト形式に戻すために、SenseTalkはフォーマットを制御できるメカニズムを提供します。
演算子の優先順位
複雑な式の演算子は、その優先順位に基づいて特定の順序で評価されます。演算子の優先順位、最高(最初に評価されるもの)から最低(最後に評価されるもの)までの順序は次の通りです:
| 1位 | ( ) (括弧内の式は最初に処理される) |
| 2位 | (暗黙的な連結—以下を参照)not (論理的な否定)- , negative (単項マイEggplant、または否定)+ , positive (unary plus) bitNot (bitwise not) |
| 3位 | ^ , to the power of (累乗)squaredcubed%, percentagohence , from nowrepeated , repeated up to a length ofaswith format , using format |
| 4位 | * , times, multiplied by/ , divided bydivremmodulo , modjoined bysplit byrounded torounded to nearestsorted |
| 5位 | + , plus- , minusadding , adding the properties ofreplacing, replacing the properties ofremoving , removing the properties of , minus propertyretaining , retaining the properties ofrenaming, renaming the properties using |
| 6位 | bitShift |
| 7位 | & (文字列を連結)&& (文字列をスペースで連結)is a multiple ofis evenly divisible bybut at least , but no less thanbut at most , but no more than |
| 8位 | &&& (リストを連結) |
| 9位 | < , is less than , comes before> , is greater than , comes after<= , is less than or equal to , is at most>= , is greater than or equal to , is at leastbetweencontainsis inis amongis ais within |
| 10位 | bitAnd (bitwise and) |
| 11位 | bitXOr (bitwise exclusive or`) |
| 12th | bitOr (bitwise or) |
| 13位 | = , is equal to , is<> , is not equal to , isn'tbegins withends withmatches |
| 14位 | andand if (short-circuit and) |
| 15位 | oror if (short-circuit or) |
同じ優先レベルの演算子が式で一緒に使用されると、左から右へと評価されます。どの場合でも、サブ式の周りに括弧を使用して、そのグループが式の他の部分よりも先に評価されるようにすることができます(以下の括弧の使用を参照)。
暗黙の連結
暗黙の連結は、文字列リテラル、定数、特定の事前定義された変数が、演算子の介在なしに連続して式に出現する場合に発生します。例えば、この式:
"Line 1" return "This is " "Line 2"
は、次の結果と同じ結果を生み出します:
"Line 1" & return & "This is " & "Line 2"
定数(return、true、false、empty、up、down)に加えて、暗黙の連結に使用できる事前定義された変数は次のとおりです:space、tab、quote、comma、slash、backslash、newline、linefeed、lf、carriagereturn、creturn、cr、crlf。
括弧の使用
括弧は、SenseTalk表現でいくつかの異なる目的に使用されます。
グループ化操作
括弧は、操作を特定の順序で実行するため、またはそうしなければ存在するかもしれない曖昧さを解消するために使用することができます。例えば、この曖昧な表現を考えてみてください:
the square root of nine plus sixteen
あなたの友人があなたに「_nine-plus-sixteen_の平方根は何ですか?」と聞いたら、あなたはすぐに9と16を加えて25を得て、それから平方根を取り、求められた答え「五」を出します(あなたはそのようなことを常にやっていますよね?)。または、彼らはmd あるいは、彼らは少し違った強調と「九」の後の短い一時停止で質問をするかもしれません。「_nine_の平方根、プラス16は何ですか?」。この場合、まず9の平方根を求めてから、その結果に16を足して求められる答え「19」を出します。
スクリプトの場合、この式にどちらの解釈を与えるかを読者に伝えるための声のヒントはありません。意味は曖昧に見える可能性があります - どちらの解釈にも解釈できます。実際には、SenseTalkの優先順位のルールが適用され、19という結果を与える方式で評価されます。もし意図した結果ではない場合、評価を最初に行いたい式の部分に括弧を使ってください。
the square root of (nine plus sixteen)