returnとbreakについて
 Luaのリファレンスマニュアルに「return 文と break 文はブロックの 最後 の文としてのみ書くことが許される」と記述されていますが、基本的に気にしないでいいです。
 一般的にreturnとbreakを書くタイミングって、ブロックの最後以外に来ることがまず無いんですよね。
 たとえばbreakの場合、
while true do
if NSGetKey("RETURN") then break end
NSSleep(1)
end

 といった使い方をするわけですが。
「最後の文」と書かれているのでなんとなく「whileの最後に来てないし、こういう書き方だめなのかなぁ」という気になりますが、if文のブロック内の最後の文になっているので、これは正しい使い方になります。
 もしわざと不正な使い方をするのであれば
while true do
if NSGetKey("RETURN") then
break
NSExec('caption "RETURN key is pressed"')
end
NSSleep(1)
end

 という感じですね。もしこういう書き方をするとしたら、デバッグしたい時なんかでしょうか。ループや関数を途中まで進めて様子を見たい、とか。そういう時は単にbreakと書くのではなくdo break endとしましょう。

 ちなみに、returnとbreakで不正な使い方をした場合、「'end' expected...」というエラーメッセージが出ます。
[PR]
by lyricist_m | 2009-05-09 15:57 | NSLua
<< ゲームサンプル(ドッジ)をバー... ゲームサンプル(ドッジ) >>