Hầu hết các câu trả lời ở đây giải quyết vấn đề này tại thời gian chạy và không phải lúc biên dịch.
Lua 5.2 giới thiệu trình tự thoát \z
để giải quyết vấn đề này một cách trang nhã mà không phải chịu bất kỳ chi phí nào trong thời gian chạy.
> 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
bỏ qua tất cả ký tự tiếp theo trong chuỗi cho đến ký tự không dấu cách đầu tiên. Điều này cũng có tác dụng đối với văn bản chữ không nhiều dòng.
> print "This is a simple \z string"
This is a simple string
Từ Lua 5.2 Reference Manual
Các dãy thoát '\ z' bỏ qua khoảng ký tự sau đây trắng-không gian, bao gồm ngắt dòng; nó đặc biệt hữu ích để phá vỡ và thụt lề một chuỗi ký tự dài thành nhiều dòng mà không thêm các dòng mới và dấu cách vào nội dung chuỗi.
Cảm ơn bạn, [[]] là những gì tôi đang tìm kiếm! – bratao
Tôi muốn bình luận chống lại việc sử dụng '..' quá nhiều: Mỗi kết nối đơn lẻ sinh ra một chuỗi mới, có khả năng gây tổn hại nghiêm trọng đến hiệu suất. Nếu bạn muốn đặt nhiều khối nhỏ với nhau, đặt chúng trong một bảng và sử dụng 'table.concat' là một cách tiếp cận tốt hơn. – jpjacobs
Mỗi concatention mới sinh ra một chuỗi mới, nhưng nhiều concatentations trong một chuỗi được thực hiện tất cả cùng một lúc ==> nhìn vào đầu ra luac cho ở trên; sẽ chỉ có 1 CONCAT opcode. – daurnimator