首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lua C Api Metatable:__newindex的返回约定

Lua C Api Metatable:__newindex的返回约定
EN

Stack Overflow用户
提问于 2013-08-09 08:50:59
回答 2查看 586关注 0票数 2

我正在用Lua的C API在C中实现一个元可选。我想知道__newindex方法是应该通过返回值来报告成功还是失败,还是应该通过使用错误来处理这个问题。

__indexreturn 0的上下文中,我想知道__newindex中是否有类似的结构可以避免忽略或手动抛出错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-09 11:40:02

Lua不期望从newindex元方法返回值。见http://www.lua.org/manual/5.2/manual.html#2.4

如果您的失败是致命的,只需在元方法中引发一个错误。

票数 2
EN

Stack Overflow用户

发布于 2013-08-09 09:00:19

将一个值从C返回给Lua表示推到堆栈上的结果的数量。当返回0时,在Lua中使用该方法的结果所做的任何分配都将是nil。当您在0的上下文中返回__index时,您只是表示没有将值推送到堆栈上。通过推送nil并返回1,您可以得到相同的结果。

类似地,在__newindex的上下文中,您从C返回的值指示您将多少结果推到堆栈上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18143167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档