我想将一个字符串相乘并将它们存储到一个变量中,这是我想做的一个例子,但在 Python 中:
a = "A" * 200
Run Code Online (Sandbox Code Playgroud)
如果您只需要重复字符串 n 次,则应该使用string.rep
string.rep(s,n[,sep])
返回一个字符串,该字符串是由字符串 sep 分隔的字符串 s 的 n 个副本的串联。sep 的默认值是空字符串(即没有分隔符)。如果 n 不为正则返回空字符串。
(请注意,单次调用此函数很容易耗尽机器的内存。)
如果你想使用乘法语法,你可以__mult在字符串元表中实现元方法
getmetatable("a").__mult = string.rep
Run Code Online (Sandbox Code Playgroud)
但这会改变 Lua 的行为。Lua 会隐式转换"1" * "4"为1 * 4解析为4. 我们更改后会导致"1111"
这可能会在以后引起问题。此外,这还会影响所有字符串,因此您可能会更改其他人的代码,而这些人并不打算在您的公共代码库中这样做。
string.rep因此,我个人建议在需要重复字符串时坚持使用。