Большинство ответов здесь решает эту проблему во время выполнения, а не во время компиляции.
В Lua 5.2 введена escape-последовательность \z
для элегантного решения этой проблемы без каких-либо затрат времени выполнения.
> print "This is a long \z
>> string with \z
>> breaks in between, \z
>> and is spanning multiple lines \z
>> but still is a single string only!"
This is a long string with breaks in between, and is spanning multiple lines but still is a single string only!
\z
пропускает все последующие символы в строковом литерале 1 до первого непробельного символа. Это работает и для не многострочного литерального текста.
> print "This is a simple \z string"
This is a simple string
С Справочное руководство Lua 5.2
В escape-последовательности '\ z' пропускается следующий интервал символов пробела, включая разрывы строк; особенно полезно разбивать и вставлять длинную литеральную строку в несколько строк без добавления новых строк и пробелов в содержимое строки.
1: Все escape-последовательности, включая \z
, работают только на коротких литеральных строках ("…"
, '…'
) и, понятно, не на длинных литеральных строках ([[...]]
и т. Д.)