我知道我可以像Lu那样连接Lua中的字符串
String = String .. 'more'
但是,如果我想添加HTML并希望(显然)保持它的外观呢? 例如,我如何克服
luac: Perl to Lua:226: unfinished string near '''
我这样做的错误
Html_string = Html_string .. "
<tr>
<th class=row>" . gettext("Last Upgrade") . "</th>
<td title=\"Upgrade_date\"Upgrade_status</td>
</tr>
"
答案 0 :(得分:6)
您可以使用多行字符串标记。
在Lua中,那是使用[[ .. ]]
语法
所以,例如:
Html_string = Html_string .. [[ <tr> <th class="row">]] .. gettext("Last Upgrade") .. [[</th> <td title="Upgrade_date">Upgrade_status</td> </tr> ]]
在[[..]]
内,你甚至不必逃避任何角色。如果您的html内容恰好包含[[ ..]]
本身,则可以将其展开为[=[ .. ]=]
以避免冲突。只要在开始和结束标记中的数量相同,就可以对任意数量的=
符号进行此扩展。
请参阅PiL以供参考,它甚至使用HTML作为多行字符串的示例。