言語の主要要素
SenseTalkを一言で説明する
SenseTalkは強力で読みやすい高水準言語です。それは英語に似ており、可能な限り暗号化されたシンボルや厳格な構文を避けるように設計されています。これにより、読みやすさと書きやすさが両立されています。このセクションでは、言語の多くの特徴を簡単に説明します。
ここで提示する情報は、SenseTalkのほとんどの主要な要素についての簡潔な概観を提供することを目指しています。経験豊富なスクリプト作成者やプログラマーにとっては、これがSenseTalkの使用を始めるための十分な情報となるものです。他のユーザーも、このセクションをざっと見て、進む先に何が控えているかを感じ取れることでしょう。
また、物事がどのように機能するかを速やかに再確認したい時に、このセクションは便利な参照情報となります。各トピックについては、より完全な情報への参照案内があります。
スクリプト
SenseTalk _script_は一連のコマンドステートメントです。これは通常、あなたのコンピュータ上のテキストファイルとして保存されます。スクリプトが_run_されると、各ステートメントが順番に実行されます。コマンドは通常、動詞で始まり、処理が順番に行で分かれて書かれます。
スクリプトを書き始めると、SenseTalkの特徴の一つとして色分けに気づきます。スクリプトは色分けされ、スクリプトのさまざまな部分が何であるかを示しています。たとえば、変数は文字列リテラルとは異なる色になります。太字と斜体もスクリプトの異なる要素を区別するために使用されます。複数のスクリプトテーマがあり、スタイリングもEggplant Functional Script Preferences Theme Paneで完全にカスタマイズできます。
SenseTalkは大文字と小文字を区別しません。命令は大文字、小文字、または混在して書かれても意味は変わりません。
例:
Put 7 Into days
multiply Days by 4
PUT DAYS -- Prints "28"
(詳細はScript Structure and Control Flowを参照してください)
Simple Values
SenseTalkにはシンプルな値があります。
例:
5 -- 数値
sixty-four -- 言葉で表現された数値
"❤ hello ❤" -- テキスト文字列 (国際ユニコードテキストが使用可能)
@"Hello\nNew\nWorld" -- エスケープコード付きテキスト文字列
empty -- 定数
0x7F -- 16進数
<3FA64B> -- バイナリデータ
(詳細はValuesを参照してください)
テキストブロック
複数行のテキストブロックは {\{
と }}
で囲むことができます。この種類のテキストブロックは、オブジェクトのスクリプトを動的に設定したり、データブロックを定義したりするのに特に便利です。
例:
set names to {{
Harry Potter
Hermione Granger
Ron Weasley
}}
(詳細はValuesを参照してください)
Tech Talk
テキストブロックは、他の言語の「here is」ブロックに似たラベルを使用できます。これにより、ネストも可能です。
演算子
演算子は値を式に結合します。一般的な(そしていくつか の非一般的な)演算子が使用可能です。 put
コマンドは、宛先を指定せずに式の値を表示します。
例:
put 3 + 2 * 7 -- Prints: 17
put five is less than two times three -- Prints: true
put "a" is in "Magnificent" -- Prints: true
put 7 is between 5 and 12 -- Prints: true
put "poems/autumn/InTheWoods" split by "/" -- Prints: [poems,autumn,InTheWoods]
例:
括弧は、操作をグループ化するために使用できます。
put ((3 + 2) * 7) is 35 -- true
(詳細はExpressionsを参照)
結合
テキスト文字列は &
または &&
を使って結合(連結)できます。 &
演算子は文字列を直接結合し、&&
は間に スペースを挟んで結合します。
例:
put "red" & "orange" -- "redorange"
put "Hello" && "World" -- "Hello World"
(詳細はExpressionsを参照)
値の割り当て
値はコンテナに保存することができます。変数はシンプルなコンテナです。 put into
または set to
コマンドのいずれかを使用して、コンテナに値を割り 当てることができます。
例:
put 12 into counter
set counter to 12
変数は使用されると自動的に作成されます。最初に宣言する必要はありません。
(詳細はContainersを参照)
Put Command
put
コマンドは、コンテナの内容の前後に値を追加することもできます。
例:
put 123 into holder -- "123"
put "X" before holder -- "X123"
put "Y" after holder -- "X123Y"
(詳細はContainersを参照)
型のない言語
SenseTalkは型のない言語です。変数はどんな型の値でも保持できます。
例:
put 132 into bucket -- bucket is holding a number
put "green cheese" into bucket -- now bucket holds a text string
必要に応じて値が自動的に変換されます。
例:
put ("1" & "2") / 3 -- 4
(詳細はExpressionsを参照)
引用符なしの文字列
まだ値が格納されていない任意の変数は、そのまま文字列として扱われます。この方法で、それらは引用符なしの文字列として使用でき、便利です。
例:
put Bread && butter -- "Bread butter"
(詳細はContainersを参照)
定数
一部の単語は、その名前に対応する事前定義された固定値を持っています。これらは一般的に「定数」と呼ばれますが、SenseTalkはあなたが選んだ任意の変数名を、最大限に活用できるようにデザインされています。そのため、実際に事前定義されている定数はほんの少しであり、ほとんどの単語は変数として使用してその値を変更することができます。
実際の定数には true
、false
、end
、empty
、return
が含まれます。
例:
put street1 & return & street2 & return & city into address
if line 2 of address is empty then delete line 2 of address
事前定義された変数 には、数値や特殊文字(引用符やタブなど)が含まれます。
例:
put 2*pi -- 6.283185
add one to count