luaapi元表:newindex的返回约定

luaapi元表:newindex的返回约定,lua,Lua,我正在用Lua的C API在C中实现一个元表。我想知道\uu newindex方法是否应该通过返回值来报告成功或失败,或者是否应该使用错误来处理 在\uuu index的上下文中,返回0表示查找值失败,我想知道\uu newindex中是否有类似的构造,可以避免忽略或手动抛出错误将值从C返回到Lua表示推送到堆栈上的结果数。当返回0时,使用该方法的结果在Lua中进行的任何赋值都将是nil。当您在\uu index的上下文中返回0时,您只是指示没有将任何值推送到堆栈上。按nil并返回1可以得到相同

我正在用Lua的C API在C中实现一个元表。我想知道
\uu newindex
方法是否应该通过返回值来报告成功或失败,或者是否应该使用错误来处理


\uuu index
的上下文中,返回0表示查找值失败,我想知道
\uu newindex
中是否有类似的构造,可以避免忽略或手动抛出错误

将值从C返回到Lua表示推送到堆栈上的结果数。当返回
0
时,使用该方法的结果在Lua中进行的任何赋值都将是
nil
。当您在
\uu index
的上下文中返回
0
时,您只是指示没有将任何值推送到堆栈上。按
nil
并返回
1
可以得到相同的结果


类似地,在
\uuuu newindex
的上下文中,来自C的返回值指示已将多少结果推送到堆栈上

Lua不希望从
newindex
metamethod返回值。看

如果失败是致命的,只需在元方法内部引发错误