为什么 Lua 只打印字符串的第一个字?

我正在 Lua 中制作一个简单的程序,它发送消息,但由于某种原因,它只打印字符串的第一个单词(例如:“Hello World!”只打印“Hello”) 以下是到目前为止的所有代码:

local msg = (...)
print('Message:',msg)

我非常新手,我大约一周前开始。

点赞
用户4984564
用户4984564

当你调用像

lua some_program.lua foo bar baz

这样的程序时,程序会有三个独立的字符串参数:

local a, b, c = ...
print(a) -- foo
print(b) -- bar
print(c) -- baz

所以在你的情况下,(...) 只会给你第一个参数。

有两种方法可以解决这个问题:

你可以确保程序只使用一个长字符串参数被调用,通过引用它:

lua some_program.lua "foo bar baz"

或者你可以通过使用 table.concat 连接 ... 所有的参数。这很容易做到:

local msg = table.concat({...}, " ")
print("Message:", msg)
2020-12-07 20:53:33