我在Java中被告知我应该避免修改原始参数,例如
public int doStuff(int begin, int end) {
/* loop or something */
begin++; //bad
end--; //also bad
/* end loop */
return
}
Run Code Online (Sandbox Code Playgroud)
相反,我应该做点什么
public int doStuff(int begin, int end) {
int myBegin = begin; //something like this
int myEnd = end;
/* stuff */
return
}
Run Code Online (Sandbox Code Playgroud)
所以,我一直在用lua做这件事
function do_stuff(begin, last)
local my_begin = begin
local my_last = last
--stuff
my_begin = my_begin + 1
my_last = my_last - 1
--stuff
end
Run Code Online (Sandbox Code Playgroud)
但是,我想知道是否
function do_stuff(begin, last)
--stuff
begin = begin + 1
last = last - 1
--stuff
end
Run Code Online (Sandbox Code Playgroud)
也是气馁,还是简洁明了?
没有规则.让品味,清晰度和需求决定.
毫无疑问,一个常见的习惯用法是提供参数的默认值,如
function log(x,b)
b = b or 10
...
end
Run Code Online (Sandbox Code Playgroud)