编写Lua方法,可以直接更改参数。

如何在Lua中创建像 string.gsub(...) 这样的方法?

我希望我的函数可以更改我传递给函数的参数。

我知道在函数中,字符串和数字类型的变量通过名称传递(按值调用),

但我不知道 gsub 如何更改(直接应用于字符串类型变量),当我们尝试像 s:gsub(...) 那样使用它时,s 变量会改变并受到 gsub(...) 方法的影响!

我想创建一个 Inc(...) 方法,当我像 ex:Inc() 这样使用它时,ex(数字变量)增加1!

帮我实现这个...我希望变量 ex(例如:ex = 1)为数值型(而不是表格)

ex = 1
ex:Inc()
print(ex) - ex == 2

谢谢。

点赞
用户107090
用户107090

在 Lua 中,所有的参数都是按值传递的。没有办法从函数内部改变一个变量的值(你可以改变表的内容,但不能改变表本身)。

s:gsub(...) 不会影响 s,除非你执行 s=s:gsub(...)。试试这个:

s="hello"
print(s:gsub("[aeio]","-"))
print(s)
2013-06-21 17:12:48