钩机构的行为

时间:2012-10-02 22:08:13

标签: lua hook

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

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

foo功能:

 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次而不只是一次?

1 个答案:

答案 0 :(得分:3)

在下面的程序中,我只看到3条消息,而不是4条。解释是每次调用后都会调用调用挂钩:fooprint,{{1} },由tostring调用。

print