"それ"について全て
変数it
はSenseTalkにおいて特別な役割を果たします。値が提供されたり使用されたりする多くの状況で、特定の変数名が指定されていません。これらの状況では、SenseTalkは自動的にローカル変数it
を値を格納する場所として使用します。ほとんどの場合、この特別な役割は非常に便利で、自然で英語のようなスクリプトにつながります。しかし、それの値を変更する多くの異なるコマンドがあるため、it
が長い間同じ値を保持すると仮定してはなりません。
以下に、it
の値を変更するコマンドと構造を示します。次のコマンドは、通常の値を返す方法として、常にit
の値を設定します。
answer
ask
get
post
次のコマンドは、使用方法によってit
の値を設定することがあります。一般的に、これらのコマンドに渡される値がコンテナ(例えば変数)の場合、そのコンテナの内容は直接変更されます。渡される値がコンテナでない(例えばリテラル値や式)場合、結果はit
に返されます。
add
convert
divide
join
multiply
read
replace
reverse
shuffle
sort
split
subtract
さらに、repeat with each
コマンドは、特定のループ変数が提供されていない場合、最も単純な形でit
を使用します:
repeat with each...
(変数が提供されていない場合)
ここにリストされているコマンドのいずれかがit
の値を暗黙的に設定する場合、それは通常の変数として設定され、参照ではありません。it
が以前に参照であった場合、設定する前にそれが参照していたコンテナから切り離されます。