我只是有一个普遍的问题。
在Lua中使用单引号和双引号是否有任何区别?
示例:
require('test.lua')
require("test.lua")
当我在PAWN中编程,一种类似于C的语言时,单引号可用于字符,但不能用于文本字符串,您必须为它们使用双引号。
如果没有差异,建议使用哪一个?
这个问题很可能已经得到了解答,但是我找不到已经回答过的话题。
谢谢。
答案 0 :(得分:27)
不。没有区别,除了你可以把另一个包围在你正在使用的那个内。
-- No difference between these
myStr = "Hi!!"
myStr = 'Hi!!'
myStr = [[Hi!!]] -- The 'weird' way to make a string literal IMO...
-- Double quotes enclosed in single quotes
myStr = 'My friend said: "Hi!!"'
-- Single quotes enclosed in double quotes
myStr = "My friend said: 'Hi!!'"
-- Single and double quotes enclosed in double brackets
myStr = [[My friend said: "What's up?"]]
有关详细信息,请参阅:Strings in Lua。
答案 1 :(得分:3)
您可以通过在互联网上搜索“lua字符串”来轻松找到Lua字符串。
以下是一个结果:http://www.lua.org/pil/2.4.html
您可以自由选择自己的引用样式,因为它没有区别,但您应该保持一致,以便您的代码更好阅读。
作为优先选择,我通常会使用双引号,因为Lua使用C风格的转义码。许多脚本语言(例如Perl)和命令shell 做区分单引号和双引号字符串,与这些准标准实践略微一致会很好。< / p>
我的意思是,当我看到单引号字符串时,我必须实际考虑我正在阅读的语言,以及是否在该字符串中替换了转义码。使用双引号字符串时,我不必考虑它,因为作为一般规则,任何用字符串中的C风格转义码替换的语言都会在双引号字符串中执行。
答案 2 :(得分:2)
Lua中两者没有区别,所以你可以使用你喜欢的任何一个。我倾向于在语义上区分它们:
"double quotes"
用于用户可见的字符串和文本,基本上是输出或文件中显示的内容'single quotes'
作为类似选项的字符串传递给方法,通常用于代码,例如io.stdout:setvbuf('no')