嵌まった

矢張り他の言語と違う部分に嵌まるなぁ。

その1

0は真。
むしろnilとfalseのみが偽。
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html#2.2

if 0 then
  print "true"
else
  print "false"
end

trueが出力される。


(追記)
突っ込みがあったので上のコードをrubyで実行してみた。
luarubyは妙に文法が似ているので無修正でOK。
rubyluaと同じくnilとfalseだけが偽らしい。
http://www.ruby-lang.org/ja/man/html/trap_BFBFB5B6C3CD.html
nilとfalseだけが偽というルールは覚えておくとしよう。
そのうち忘れて嵌まることもあるだろうけど、まだ覚えやすい方だ。
lua(ruby)では0がintでないというのを強調するためにも敢えてそういう選択をしているのかもしれない。

その2

配列は1origin。
0originのCに埋めているのにこれはいかん。
行ったり来たりすると間違える。

local list={1234}

print(list[0])
print(list[1])

nil
1234
が出力される。


慣れればどうということは無いのだが・・・
Squirrelに惹かれはじめているw