にゃごすwiki

スクリプト関連/2009-6-18

 スロット名に2バイト文字 その2

スロットのシンタックスシュガー、ちゃんとマニュアルに載ってた。
どこ見てたんだろうなぁ。

そういえば、項目が見つからない場合、エラーになってしまう。
先にスロットの存在をチェックする必要がある。

if( "あい" in dic ){
  print( dic["あい"][0] );
}else{
  print( "ない" );
}

うーむ、なかなか面倒だな。luaだとnilを返してくれたんだけど。
それでもあとでチェックしなきゃいけないから同じか。

 テーブルのコピー

テーブルのコピーをしようと、こんな記述をしたところ、

A <- {
  HOGE = 10,
}
B <- A
B.HOGE = 20
print( "A:" + A.HOGE + " B:"+ B.HOGE + "\n" );

結果

A:20 B:20

なるほど、ポインタが渡されるだけで、AとBは同じデータを参照するようになるわけだ。
ではコピーはどうするのだと思って調べたところ、

C <- clone A;

と書かないといけないのね。