lua文档中每一个函数都有一个堆栈变化标记类似
[-o,+p,x]
第一部分o代表有多少元素出栈,第二部分p代表有多少元素入栈(有些函数总是出栈它的参数,入栈它的结果)这部分在一些情况下,有可能是 x|y 形式出现,代表有x或y个元素入栈(出栈), ?标记的意思不能知道有多少个元素出、入栈。
第三部分 x说明函数是否可以抛出错误:-代表函数从不抛出错误。m代表函数只有not enough memory的时候才抛出错误。 e代表这个函数可以抛出其他类型的错误。 v代表函数可以有目的的抛出错误。
参考:lua 5.1 reference manual 3.7 functions and types