[[ strings ]] 与 lua 中的嵌套 [[ strings ]] ?

the*_*orn 2 lua

https://www.lua.org/pil/2.4.html中的示例 显示:

page = [[
    <HTML>
    <HEAD>
    <TITLE>An HTML Page</TITLE>
    </HEAD>
    <BODY>
     <A HREF="http://www.lua.org">Lua</A>
     [[a text between double brackets]]
    </BODY>
    </HTML>
    ]]
Run Code Online (Sandbox Code Playgroud)

但这给了我一个/错误</BODY>

lua54: html.lua:9: unexpected symbol near '/'
Run Code Online (Sandbox Code Playgroud)

这本书出版后有什么变化吗?

shi*_*ngo 8

您必须使用另一级长括号:

page = [=[
    <HTML>
    <HEAD>
    <TITLE>An HTML Page</TITLE>
    </HEAD>
    <BODY>
     <A HREF="http://www.lua.org">Lua</A>
     [[a text between double brackets]]
    </BODY>
    </HTML>
    ]=]
Run Code Online (Sandbox Code Playgroud)

标题说“这个第一版是为 Lua 5.0 编写的”,这在Lua 5.1中进行了更改:

长字符串/长注释语法([[string]])不允许嵌套。在这些情况下,您可以使用新语法 ([=[string]=])。(参见 luaconf.h 中的编译时选项 LUA_COMPAT_LSTR。)