参数是否应该用作Lua中的变量?

Blu*_*ber 3 convention lua

我在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)

也是气馁,还是简洁明了?

lhf*_*lhf 6

没有规则.让品味,清晰度和需求决定.

毫无疑问,一个常见的习惯用法是提供参数的默认值,如

function log(x,b)
   b = b or 10
   ...
end
Run Code Online (Sandbox Code Playgroud)