Son zamanlarda bir yakut tarzı rehber işime karar verdi. Yazılardan biri, hiçbir satırın 80 karakterden daha geniş olmaması gerektiğidir. Bu bir Rails projesi olduğundan, genellikle biraz daha uzun dizelerimiz var - yani " X Kullanıcısı size 80 karakter stili sınırına uymayan" Şey Y hakkında bir mesaj göndermek istedi ".
Uzun bir dize birden çok satır yaymak için üç yolu olduğunu anlıyorum:
- heredoc
- % S {}
- Gerçek dize birleştirme.
Bununla birlikte, tüm bu davalar daha aptalca görünen daha fazla hesaplama döngüsü alıyor. Dize birleştirme açıkça, ama için HEREDOC
ve %Q
ben gibi bir şey aracılığıyla, yeni satırları çıkarmak zorunda .gsub(/\n$/, '')
.
Bunu yapmanın saf bir sözdizimi yolu var mı, bu sadece tüm dizeyi bir satırda tutmakla eşdeğer mi? Amaç, açıkçası, sadece kodumu biraz daha okunabilir olmasını istiyorum çünkü herhangi bir ekstra döngüleri harcamak değil. (Evet, bu ödünleşmeyi çok yapmak zorunda olduğunuzu anlıyorum ... ancak dize uzunluğu için bu sadece aptalca görünüyor.)
Güncelleme: Ters eğik çizgiler tam olarak istediğim gibi değil çünkü stili / okunabilirliği gerçekten etkileyen girintiyi kaybediyorsunuz.
Misal:
if foo
string = "this is a \
string that spans lines"
end
Yukarıdakileri okumak biraz zor.
EDIT : Aşağıya bir cevap ekledim; üç yıl sonra şimdi kıvrımlı otçu var.
\n
satır karakterlerini saklamak isteyip istemediğiniz belirsizdir . En iyi cevap onları korumaz, ancak cevabınızı tutar. Soru "satırsonu sıyırmadan" diyor - açıklamada "[...] satırsonlarını çıkarmak zorundayım" yazıyor.