外国語翻訳


The following translations from other languages may help you to get oriented in the land of SenseTalk.
% {#}
% 記号は多くの言語で「剰余」演算子として使用され、最も一般的には、数が偶数か奇数か、あるいはある数で割り切れるかを判定するために使用されます。SenseTalkでは、一般的なケースとして「mod」演算子と「rem」演算子が用意されています。より一般的な割り切れるかどうかの判定は、以下のように記述されます。
if x is an even number then…if x is divisible by 10 then…if x is a multiple of 25 then…
詳細については、倍数、割り切れる演算子 を参照してください。
=, ==, !=
多くの言語では、代入には = 記号を使用し、等価性の判定には == を使用します。SenseTalk では、=(または is、are、equals、is equal to などの単語)は「等しい」という意味で、== および != 記号は使用しません。代入には put コマンドと set コマンドを使用します。詳細については、比較演算子 および コンテナへの格納 を参照してください。
++, --, +=, -=
これらの記号は、多くの言語で変数の増分や減分、あるいは変数への加算や減算に使用されます。SenseTalkでは、「add」コマンドと「subtract」コマンドが使用されます。
add 1 to x -- increment
subtract 1 from x -- decrement
add foo to x -- add an amount
subtract foo from x -- subtract an amount
詳細については、算術コマンドを参照してください。
nil, null
他の言語では、これらの用語は値が割り当てられていないものを示すために使用されます。SenseTalk はほぼすべての場合、この目的で empty を使用します。empty が空の文字列 ("" と同じ) であるという事実は奇妙に思えるかもしれませんが、実際には非常にうまく機能します (これが本当に気になる場合は、変数を箱と考えるとわかりやすいかもしれません。箱に何も入っていないときは空ですが、箱はそこにあります)。empty と値の完全な欠如を区別することが重要なまれなケース (主にデータベースを操作する場合、または JSON または XML-RPC オブジェクトとの間で変換する場合) のために、SenseTalk には missing value (および同義語の nil と null) もあります。めったに使用されない用語 nullChar はヌル文字を表します (numToChar(0) と同じ)。
array, matrix, list
SenseTalkにおける「リスト」とは、他のリストを含む任意の値の組み合わせを含むことができる可変長の連続コレクションです。リスト内の項目を参照するには、「item」または「items」という用語を使用してください。SenseTalkのリストはスパース配列実装を使用しているため、リストの項目1000000に値を格納しても、項目100に格納する場合とメモリ使用量は変わりません。
ハッシュ、ハッシュテーブル、辞書、連想配列
SenseTalk における「プロパティ リスト」または「オブジェクト」は、キーと値のコレクションです。
正規表現、regex
SenseTalk ではこれらを「パターン」と呼び、それを定義するための英語のようなパターン言語が含まれています。
eval, exec
SenseTalkのvalue関数は文字列式を評価し、その値を返します。doコマンドはコード行を含む文字列を実行します。shellコマンドと関数はシェル環境でコードを実行します。
for, while, do
SenseTalk のすべての繰り返しループは、「repeat」という単語で始まる行で始まり、「end repeat」という行で終わります。繰り返しループには様々な種類があり、一般的なケースに加えて、「repeat for [a duration]」(例:「repeat for 15 seconds」)や時間ベース(例:「repeat until "5:00 PM"」)といった独特なものもいくつかあります。
switch / case
他の言語の case ステートメントに相当する SenseTalk のステートメントは、「multi-case if」ステートメントと呼ばれます。これは、条件文を「…」で区切られた 2 つの部分に分割する if のバリエーションです。
if color is …
… "red" then doSomethingRed
… "green" then becomeGreen
… "blue" then singTheBlues
else put "I don't know that color"
end if
break
repeatループを終了するには、SenseTalkはコマンド「exit repeat」を使用します。マルチケースのif文の分岐は、一部の言語のように自動的に次の分岐を実行しないため、breakに相当するコマンドは必要ありません。次のケースに強制的に実行を続行するには、コマンド「execute the next case」を使用します。
continue
繰り返しループの先頭に戻って次の反復(ある場合)を続行するには、コマンド next repeat を使用します。
0, 1
SenseTalkでは、数値は有効なブール値ではありません。true、false、yes、no、on、off(これらの文字列表現である"true"、"false"などを含む)を使用してください。条件式ではEmptyも有効です(falseとして扱われます)。
&&, ||
SenseTalk の論理演算子は「and」と「or」です(「&」と「&&」はそれぞれ連結演算子とスペース連結演算子です)。「and」と「or」は「短絡」演算子ではありません(両方の式は演算子が適用される前に完全に評価されます)。短絡的な動作が重要な場合は、代わりに「and if」と「or if」を使用できます。
&, |, ^, ~, <<, >>
SenseTalk のビット演算子は、bitAnd、bitOr、bitXor、bitNot、bitShift と呼ばれます。
/**/
SenseTalkのブロックコメントには、記号「(」と「)」を使用します。ブロックコメントはネストできるため、他のブロックコメントを含むコードブロックをコメントアウトする場合に便利です。
?
SenseTalkにおけるいわゆる「三項演算子」に相当するのは、「(if … then … else …)」演算子または「セレクタ式」であり、値(代入先の変数を選択するため)だけでなく、値そのものにも使用できます。詳細については、(If... Then.... Else...)演算子を参照してください。
!
SenseTalk における論理「not」演算子は not です。
self, this
SenseTalkでは、スクリプトが実行されているオブジェクトを指すために「me」または「my」という用語を使用します。詳細については、「Me」と「My」を使用したオブジェクト自身のプロパティへのアクセスを参照してください。