copy | put 様々な値 to | into 代入対象

引数(Parameters)

様々な値代入する値
代入対象値を代入する、変数、属性

結果(Result)

様々な値代入した値

解説(Note)

 様々な値を複製し、代入する。
 アプリケーション命令のクリップボードにコピーするcopy命令と混乱するので、代入にはset命令を主に使用していく方が混乱が無くて良い。
 クリップボードにコピーする場合は、OSAXのset the clipboard toを使った方が、文章としても、分かりやすい。
 また、copyはアプリケーションが持つオブジェクトを複製できるが、アプリケーション命令のduplicateで同じことができ、かつオプションも豊富なので、duplicateを使う方がいい(Appleも使わないように指導している)

 では、いつcopyを使うかということになるのだが、これはかなり限定された使い方となる。
 リストやレコード、スクリプトオブジェクトの値を変数に代入する場合、値がメモリに複製され、それが代入先の変数の値になり、その後両者に関係無く変更できる。
 setの場合、値は複製されず、代入先の変数はリストやレコードと値の格納先が共有される。このため代入先に指定した変数の値を変更すると、代入元のリストやレコードの値が変更され、またその逆もある。
 つまりデータの共有を行いたく無い時に限りcopyを使っていくことになる。

 リストやレコード、日付、ハンドラ、スクリプトオブジェクトを使うとき以外では、copyとsetに違いは無く、両方とも値を複製して代入する。
 copyとsetでは、引数の位置が逆なのに注意すること。

用例(Example)

  1. set x to {1, 2, 3, 4, 5} 
    set y to x
    copy 100 to item 3 of x
    y
※1 結果ウィンドウでResultを見て下さい。
※1 set命令の方の例も確認して下さい。