C言語などのプログラミング言語では、匿名コードブロックを作成して変数の範囲をブロック内に限定して、Luaで同じことを行うことができますか?Luaで匿名コードブロックを作成できますか?
もしそうなら、次のCコードに相当するLuaは何でしょうか?
void function()
{
{
int i = 0;
i = i + 1;
}
{
int i = 10;
i = i + 1;
}
}
C言語などのプログラミング言語では、匿名コードブロックを作成して変数の範囲をブロック内に限定して、Luaで同じことを行うことができますか?Luaで匿名コードブロックを作成できますか?
もしそうなら、次のCコードに相当するLuaは何でしょうか?
void function()
{
{
int i = 0;
i = i + 1;
}
{
int i = 10;
i = i + 1;
}
}
do...end
を使用します。 manualから:
ブロックは明示的に単一の文を生成するために区切ることができます。
stat ::= do block end
明示的なブロック変数 宣言のスコープを制御するのに有用です。明示的なブロックはまた、時にはあなたがキーワード
do
&end
でブロックを区切ることができ、他のブロックの途中で
function fn()
do
local i = 0
i = i + 1
end
do
local i = 10
i = i + 1
end
end
をreturn
かbreak
ステートメントを追加するために使用されています。
参考:次のようにProgramming in Lua
匿名関数を実行しているが起こる: (function(a,b) print(a+b) end)(1,4)
それはLuaのでは5
を出力し、すべてのブロックが、とにかく、匿名です。いくつかの[関数定義](http://www.lua.org/manual/5.3/manual.html#3.4.11)の簡潔な構文は、関数定義を代入と組み合わせる単なる文法的な方法です。 –