单引号和双引号在Lua中的区别

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

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

例如:

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

当我编写类似于C的PAWN语言时,可以使用单引号标记字符,但不能用于文本字符串,必须使用双引号标记它们。

如果没有区别,建议使用哪一个?

这个问题可能已经有了答案,但我没有找到已经回答的主题。

谢谢。

点赞
用户1832856
用户1832856

不,没有区别,除了你可以将其它引号放在你使用的引号内部。

-- 下面这些没有区别
myStr = "Hi!!"
myStr = 'Hi!!'
myStr = [[Hi!!]] -- 这是一个我个人认为比较“怪异”的创建字符串字面量的方式...

-- 双引号用单引号包裹
myStr = 'My friend said: "Hi!!"'

-- 单引号用双引号包裹
myStr = "My friend said: 'Hi!!'"

-- 单引号和双引号都用双方括号包裹
myStr = [[My friend said: "What's up?"]]

参考:Lua 中的字符串 获取更多信息。

2013-06-19 22:14:46
用户1553090
用户1553090

你可以通过在互联网上搜索“lua字符串”来轻松了解Lua字符串。

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

您可以自由选择自己的引用风格,因为这没有区别,但是您应该保持一致,以使您的代码更易于阅读。

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

我的意思是说,当我看到单引号字符串时,我必须实际考虑我正在阅读的语言以及在该字符串中是否替换了转义代码。对于双引号字符串,我不必考虑它,因为通常规定任何在字符串中替换C风格转义代码的语言都会在双引号字符串中这样做。

2013-06-19 22:16:54
用户221509
用户221509

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

  • 我使用“双引号”用于用户可见的字符串和文本,基本上是任何出现在输出或文件中的内容
  • 我使用“单引号”用于传递给方法的选项类字符串和通常用于代码中,比如io.stdout:setvbuf('no')
2013-06-20 06:09:55