获取用于在 Lua 中创建 coroutine/thread 的函数

Getting function used to create coroutine/thread in Lua

是否可以获取用于创建协程的原始函数?

thread = coroutine.create(function()
   -- Code
end)

f = get_function_from_thread(thread) 

你不能开箱即用,但你可以随时重新定义 coroutine.create:

local create=coroutine.create
local created={}

function coroutine.create(f)
   local t=create(f)
   created[t]=f
   return t
end

function get_function_from_thread(t)
   return created[t]
end

如果您创建了很多协同程序,请考虑将 created 设置为弱 table。