lua中函数的upvalues是有上限的,在luaconf.h中定义:

/*
@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
@* (must be smaller than 250).
*/
#define LUAI_MAXUPVALUES    60

问题:upvalues具体指的是什么?

一个函数所使用的定义在它的函数体之外的局部变量(external local variable)称为这个函数的upvalue。在如下的代码中,函数countDown使用的定义在函数createCountdownTimer中的局部变量ms就是countDown的upvalue,但ms对createCountdownTimer而言只是一个局部变量,不是upvalue。 

function createCountdownTimer(second)
  local ms = second * 1000
  local function countDown()
    ms = ms - 1
    return ms
  end
  return countDown
end

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-03
  • 2021-10-27
  • 2021-06-03
  • 2022-12-23
  • 2021-11-17
  • 2021-09-11
猜你喜欢
  • 2021-08-04
  • 2021-07-24
  • 2022-02-15
  • 2022-01-22
  • 2021-04-13
  • 2021-08-07
  • 2022-12-23
相关资源
相似解决方案