Gần đây chúng tôi đã quyết định công việc của tôi với một hướng dẫn phong cách ruby. Một trong những sắc lệnh là không có dòng nào rộng hơn 80 ký tự. Vì đây là dự án Rails, chúng tôi thường có các chuỗi dài hơn một chút - tức là " Người dùng X muốn gửi cho bạn một tin nhắn về Thing Y " không phải lúc nào cũng nằm trong giới hạn kiểu 80 ký tự.
Tôi hiểu có ba cách để có một chuỗi dài nhiều dòng:
- HEREDOC
- % Q {}
- Nối chuỗi thực tế.
Tuy nhiên, tất cả các trường hợp này kết thúc bằng nhiều chu kỳ tính toán hơn, điều này có vẻ ngớ ngẩn. Chuỗi nối rõ ràng, nhưng cho HEREDOC
và %Q
tôi phải loại bỏ các dòng mới, thông qua một cái gì đó như .gsub(/\n$/, '')
.
Có một cách cú pháp thuần túy để làm điều này, tương đương với việc chỉ có toàn bộ chuỗi trên một dòng? Rõ ràng mục tiêu là không dành thêm bất kỳ chu kỳ nào chỉ vì tôi muốn mã của mình dễ đọc hơn một chút. (Vâng, tôi nhận ra rằng bạn phải thực hiện sự đánh đổi đó rất nhiều ... nhưng đối với độ dài chuỗi, điều này có vẻ ngớ ngẩn.)
Cập nhật: Dấu gạch chéo ngược không chính xác những gì tôi muốn vì bạn mất thụt lề, điều này thực sự ảnh hưởng đến phong cách / khả năng đọc.
Thí dụ:
if foo
string = "this is a \
string that spans lines"
end
Tôi thấy ở trên một chút khó đọc.
EDIT : Tôi đã thêm một câu trả lời dưới đây; Ba năm sau, chúng ta có một di sản nguệch ngoạc.
\n
ký tự dòng mới hay không. Câu trả lời hàng đầu không giữ được họ, nhưng câu trả lời của bạn thì không. Câu hỏi cho biết "không tước bỏ dòng mới", mô tả nói "[...] Tôi phải loại bỏ dòng mới."