Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用点运算符调用lua字符串方法_Lua_Standard Library_Overriding - Fatal编程技术网

使用点运算符调用lua字符串方法

使用点运算符调用lua字符串方法,lua,standard-library,overriding,Lua,Standard Library,Overriding,是否可以重写标准字符串类的某些方法,以便使用点运算符调用它们? 例如: s = "hello world" print(s.len()) 对于不是表或完整用户数据的类型,每个类型都有一个元表。也就是说,不是每个字符串都有自己的元表,而是所有字符串共享相同的元表 默认情况下,Lua标准字符串库将此元表分配给字符串表。因此,如果需要,可以向字符串添加条目 诚然,len毫无意义,因为我们有来计算它。如果要将字符串作为第一个参数传递,则需要使用:调用语法。可以设置调用元表,但必须将字符串存储在某个包含

是否可以重写标准字符串类的某些方法,以便使用点运算符调用它们? 例如:

s = "hello world"
print(s.len())

对于不是表或完整用户数据的类型,每个类型都有一个元表。也就是说,不是每个字符串都有自己的元表,而是所有字符串共享相同的元表

默认情况下,Lua标准字符串库将此元表分配给
字符串
表。因此,如果需要,可以向
字符串添加条目


诚然,
len
毫无意义,因为我们有
来计算它。如果要将字符串作为第一个参数传递,则需要使用
调用语法。

可以设置
调用
元表,但必须将字符串存储在某个包含对象中。但如果我是对的话,就不能用绳子本身。使用
#
可能更容易。我看不到问题标题和问题内容之间有任何联系。您的问题不清楚-编辑后标题和正文不一致。使用冒号符号(
s:len()
)调用自引用方法,除非您想编写
s.len
。你读过吗?对不起,我忘了更新标题…“可以用点运算符调用”:任何函数都可以用“用点运算符”和冒号运算符调用。它是否有理想的效果是另一个问题@奥卡解释道。Lua没有像其他语言中那样的内在“重写”,因为这意味着类系统,但您可以替换。