我正在教自己Lua用于iOS游戏开发,因为我听说过很多关于它的好东西.我对该语言的文档级别印象非常深刻,这使得学习更容易.
我的问题是我找到了一个Lua概念,似乎没有人对"初学者"的解释:引号的嵌套括号.例如,我被教导了带有转义单引号和双引号的长字符串,如下所示:
string_1 = "This is an \"escaped\" word and \"here\'s\" another."
Run Code Online (Sandbox Code Playgroud)
也可以在没有整体周围报价的情况下编写.相反,人们只需用双括号替换它们,如下所示:
string_2 = [[This is an "escaped" word and "here's" another.]]
Run Code Online (Sandbox Code Playgroud)
这些对我来说都是完全合理的.但我也可以string_2用"嵌套括号"来编写这一行,其中包括两组双括号之间的等号,如下所示:
string_3 = [===[This is an "escaped" word and "here's" another.]===]
Run Code Online (Sandbox Code Playgroud)
我的问题很简单.使用的语法有string_3什么意义?它提供了相同的结果string_1,并string_2当作为一个输入给定print()的,所以我不明白为什么即使存在嵌套的括号内.有人可以帮助一个菜鸟(我)获得一些观点吗?
Tim*_*per 14
如果您的字符串包含等于分隔符的子字符串,则会使用它.例如,以下内容无效:
string_2 = [[This is an "escaped" word, the characters ]].]]
Run Code Online (Sandbox Code Playgroud)
因此,为了使其按预期工作,您需要使用不同的字符串分隔符,如下所示:
string_3 = [===[This is an "escaped" word, the characters ]].]===]
Run Code Online (Sandbox Code Playgroud)
我认为可以说很多字符串文字都不包含子字符串]],在这种情况下,可能永远不会有理由使用上述语法.