set 代入対象 to 様々な値
様々な値 returning 代入対象
代入対象 | 値を代入する、変数、属性 |
様々な値 | 代入する値 |
様々な値 | 代入した値 |
様々な値を代入する。
値を設定する時は、とにかくsetを使うと思っていい。
リストやレコード、スクリプトオブジェクトの値を変数に代入する場合、両方の値で値の格納先が共有され、その後両者の値の変更も共有される。
このため、片方の値を変更すると、もう一方の値も同時に変わる(同じ値に二つの名前がつくため)当然メモリも少なくて済み、代入の処理も速い。
値が共有されると困る場合はcopy命令を使う。copyの場合は、代入する時に値が複製されるので、その後両者の関係はない。
リストやレコードを使うとき以外では、copyとsetに違いは無く、両方とも値を複製して代入する。
copyとsetでは、引数の位置が逆なのに注意すること。
代入対象には、リストも使えるので、一度に代入したい場合などに便利に使える。
なお、returningはset toとなんら機能的な差はない。
set x to {1, 2, 3, 4, 5}
set y to x
set item 3 of x to 100
y
tell application "Finder"
set {x,y} to position of window 1
display dialog "横(" & x & ") 縦(" & y & ")"
end tell