29

我只是有一个一般性的问题。

在 Lua 中使用单引号和双引号有什么区别吗?

例子:

require('test.lua')
require("test.lua")

当我在 PAWN(一种类似于 C 的语言)中编程时,单引号可以用于字符,但不能用于文本字符串,您必须为它们使用双引号。

如果没有区别,推荐使用哪一个?

这个问题很可能已经回答了,但是我找不到已经回答的主题。

谢谢你。

4

3 回答 3

41

没有。没有区别,只是您可以将另一个包含在您正在使用的内部。

-- 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?"]]

请参阅:Lua 中的字符串以获取更多信息。

于 2013-06-19T22:14:46.833 回答
3

您可以通过在互联网上搜索“lua 字符串”来轻松找到有关 Lua 字符串的信息。

这是一个结果:http ://www.lua.org/pil/2.4.html

您可以自由选择自己的引用样式,因为它没有区别,但您应该保持一致,以便您的代码更易于阅读。

作为偏好,我通常会使用双引号,因为 Lua 使用 C 风格的转义码。许多脚本语言(例如 Perl)和命令 shell确实区分了单引号和双引号字符串,并且与这些准标准做法保持一致会很好。

我的意思是当我看到一个单引号字符串时,我必须真正考虑我正在阅读的语言,以及是否在该字符串中替换了转义码。对于双引号字符串,我不必考虑它,因为作为一般规则,任何在字符串中替换 C 样式转义码的语言都会在双引号字符串中执行此操作。

于 2013-06-19T22:16:54.647 回答
2

两者在 Lua 中没有区别,所以你可以使用任何你喜欢的。我倾向于在语义上区分它们:

  • "double quotes"用于用户可见的字符串和文本,基本上是输出或文件中出现的任何内容
  • 我使用'single quotes'类似选项的字符串来传递给方法,通常在代码中,比如io.stdout:setvbuf('no')
于 2013-06-20T06:09:55.743 回答