pcall可以返回被调用函数的值而不是布尔结果的真/假吗?

时间:2014-12-15 13:38:54

标签: lua

pcall可以返回被调用函数的值而不是布尔结果true / false吗?

例如

function f()
return 'some text'
end

print(tostring(pcall(f)))

print将仅显示true或false,而不是f

返回的值

2 个答案:

答案 0 :(得分:13)

tostring仅选择第一个参数。

a,b = pcall(f)
print(b) --> 'some text'

答案 1 :(得分:3)

function f()
  return 'some text'
end

local status, res = pcall(f)

如果 pcall ()成功, status 为true, res f ()的返回值。 如果 pcall ()失败,则状态为false, res 为错误消息。