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

但它在第二行给我一个错误:“尝试在全局’s’(一个字符串值)上执行算术运算。”我不知道为什么会这样,这让我发疯。

点赞
用户1009479
用户1009479

与其他语言不同,Lua使用 .. 连接字符串,而不是 +,将

s = s + '-'

改为

s = s .. '-'
2014-09-26 12:48:49
用户107090
用户107090

将下面翻译成中文并且保留原本的 markdown 格式

一个字符串连接的循环不推荐使用,因为它会导致二次复制(虽然对于小字符串没有关系)。尝试使用 string.rep 替代。

for i=1,1000 do
    n=math.floor(math.sin(i/10.0)*40)
    print(string.rep('-',n))
end
2014-09-26 14:38:00