gpt4 book ai didi

Lua 覆盖 # 字符串

转载 作者:行者123 更新时间:2023-12-04 14:19:39 25 4
gpt4 key购买 nike

我正在尝试为 Lua 中的字符串实现我自己的长度方法。
我已成功覆盖字符串的 len() 方法,但我不知道如何为 # 运算符执行此操作。

orig_len = string.len
function my_len(s)
print(s)
return orig_len(s)
end

string.len = my_len
abc = 'abc'

如果我打电话:
print(abc:len())

它输出:
abc
3


print(#abc)

仅输出“3”,这意味着它调用原始长度函数而不是我的。有没有办法让 # 调用我的长度函数?

最佳答案

您不能覆盖 # Lua 中的字符串运算符,甚至没有元表:__len元方法不适用于字符串。

事实上,在 Lua 中真的没有覆盖任何操作符的概念。
Lua 元方法是回退:当 Lua 无法自行进行时使用它们。因此,算术元方法不适用于数字,长度元方法不适用于字符串。

表的情况有所不同,因为它们旨在实现 Lua 中的对象。

关于Lua 覆盖 # 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23085204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com