条件的确定是战略方法设计应用程序的众所周知的方法。您可以完全确定自己的代码在发布后的第二天就能正常工作,而且可以确保团队中的其他开发人员可以更改此代码。
有两种将断言放入Lua代码中的常用方法:
assert(1 > 0, "Assert that math works")
if 1 <= 0 then
error("Assert that math doesn't work")
end
从性能的角度来看,我希望这件事类似。仅考虑样式。但这恰恰是不正确的。
断言在我的机器上工作时间更长:
function with_assert()
for i=1,100000 do
assert(1 < 0, 'Assert')
end
end
function with_error()
for i=1,100000 do
if 1 > 0 then
error('Error')
end
end
end
local t = os.clock()
pcall(with_assert)
print(os.clock() - t)
t = os.clock()
pcall(with_error)
print(os.clock() - t)
>> 3.1999999999999e-05
>> 1.5e-05
为什么会发生?