将 Lua 中的函数嵌套调用

我有一段代码嵌套了多个函数,如下所示:

function getUserinfo(user_id)
  function call_back_user_info(status , result)
     t = {["first_name"]= result.first_name_, ['have_access']= result.have_access_, ["last_name"]=result.last_name_,["user_name"]=result.username_}
    return t
  end
  getUser(user_id,call_back_user_info)
  end

我希望在调用 getUserinfo 函数时,能够返回表 t 的值。但是实际运行却得到了一个空值! 注:getUser 函数通过 call_back_user_info 向其中写入数据。

我该如何解决这个问题?

点赞
用户1108505
用户1108505

你不能在内部函数内部从外部函数中执行“长返回”。

但你可以创建一个闭合的本地变量,像这样:

function getUserinfo(user_id)
  local t

  function call_back_user_info(status , result)
    t = {["first_name"]= result.first_name_,
         ['have_access']= result.have_access_,
         ["last_name"]=result.last_name_,
         ["user_name"]=result.username_}
  end

  getUser(user_id,call_back_user_info)

  return t
end
2017-10-10 21:33:27