基于字符串变量的Lua算法

基于字符串变量的Lua算法,lua,Lua,我这里有一小段代码 for i=1,1000 do n=math.floor(math.sin(i/10.0)*40) s='' for j=1,n do s=s+'-' end print(s) end 但它在第2行给了我一个错误:“尝试对全局的(字符串值)执行算术运算”我不知道它为什么这样做,这让我抓狂。与其他一些语言不同,Lua使用。连接字符串,而不是+,更改 s = s + '-' 到 与其他一些语言不同,Lua使用。连接字符串,而不是+,更改 s

我这里有一小段代码

for i=1,1000 do
    n=math.floor(math.sin(i/10.0)*40)
    s=''
    for j=1,n do s=s+'-' end
    print(s)
end

但它在第2行给了我一个错误:“尝试对全局的(字符串值)执行算术运算”我不知道它为什么这样做,这让我抓狂。

与其他一些语言不同,Lua使用
连接字符串,而不是
+
,更改

s = s + '-' 


与其他一些语言不同,Lua使用
连接字符串,而不是
+
,更改

s = s + '-' 


不建议使用字符串串联循环,因为它会导致二次副本(这对小字符串并不重要)。改为尝试
string.rep

for i=1,1000 do
    n=math.floor(math.sin(i/10.0)*40)
    print(string.rep('-',n))
end

不建议使用字符串串联循环,因为它会导致二次副本(这对小字符串并不重要)。改为尝试
string.rep

for i=1,1000 do
    n=math.floor(math.sin(i/10.0)*40)
    print(string.rep('-',n))
end

使用
string.rep
代替内部for。使用
string.rep
代替内部for。