嵌まった
矢張り他の言語と違う部分に嵌まるなぁ。
その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で実行してみた。
luaとrubyは妙に文法が似ているので無修正でOK。
rubyもluaと同じくnilとfalseだけが偽らしい。
http://www.ruby-lang.org/ja/man/html/trap_BFBFB5B6C3CD.html
nilとfalseだけが偽というルールは覚えておくとしよう。
そのうち忘れて嵌まることもあるだろうけど、まだ覚えやすい方だ。
lua(ruby)では0がintでないというのを強調するためにも敢えてそういう選択をしているのかもしれない。