1

如何创建类似string.gsub(...)lua 的方法?

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

我知道字符串和数字类型变量在函数中按名称( CALL BY VALUE )传递,

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

我想创建一个方法Inc(...),当我像ex:Inc()ex (number var) 一样使用它时增加 1 !!!

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

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

谢谢你 。

4

1 回答 1

2

s:gsub(...)影响s,除非你这样做s=s:gsub(...)。尝试这个:

s="hello"
print(s:gsub("[aeio]","-"))
print(s)

在 Lua 中,所有参数都是按值传递的。无法从函数内更改变量的值。(您可以更改表格的内容,但不能更改表格本身。)

于 2013-06-21T17:12:48.723 回答