2

我对钩子机制有一个奇怪的行为,我不明白,我喜欢一些帮助。

这是一个非常简单的例子,因为我正在学习语言:

富功能:

 function foo () print ("i'm in foo") end

一些数据功能:

 function data () print ("This is the data : ") end

然后我做钩子设置:

debug.sethook(data , "c")

有线的事情是当我调用 foo 这是我得到的输出:

This is the data : 
This is the data : 
This is the data : 
This is the data : 
i'm in foo

这是整个程序,所以没有隐藏的东西可能导致它。

我想知道为什么钩子被调用 4 次而不是一次?

4

1 回答 1

3

在下面的程序中,我只看到 3 条消息,而不是 4 条。解释是调用钩子在设置后为每个调用调用:foo, print, tostring, 由 调用print

function foo () print ("i'm in foo") end
function data () print ("This is the data : ",debug.traceback()) end
debug.sethook(data , "c")
foo()
于 2012-10-02T22:17:22.993 回答