2012-11-24 12 views
5

dizeleri, Şimdiki gibiYakut - Ben <code>puts</code> veya <code>print</code> kullanırsam, ben Yakut dizeleri çıktısını zaman <code>n</code> tutmak istiyorum

çıktısını zaman \ n tutmak nasıl \n bir yeni satır ile sona erecek : abc\nabc:

pry(main)> print "abc\nabc" 
abc 
abc 

yakut gibi çıktısını bildirmek için bir yol var?

GÜNCELLEME

belki daha net yapmadığını üzgünüm. Regex'leri hata ayıklamaktayım, bu yüzden bir dize çıktığında, \n\n görüntülendiyse, yeni satır değil, kontrol etmem daha kolay olurdu. Yani @slivu'nun cevabı tam olarak istediğim şey. Teşekkürler beyler. \ N bir özel anahtar kelime olduğu için

+0

gibi yapabiliriz \ n''? –

+0

@muistooshort Sanırım bir _literal_ '\ n' – MiJyn

+0

@lkjoel: Ya da belki bir yeni satır ve' str.inspect' istiyor, sadece larryzhao kesin olarak biliyor. –

cevap

12

: Eğer herhangi birini kullanmak gerekmez pry ile

p "abc\nabc" 
=> "abc\nabc" 

ve aslında Onları dizginizi yazın ve girin:

2

, bunu gibi kaçış için bu özel anahtar kelimenin önüne bir ters eğik çizgi ekleyerek (ve bu yüzden, tersbölüler da kaçtı olmalıdır) vardır: abs\\nabc. \\n'u yazdırmak istediğinizde, onu abs\\\\n olarak değiştirmelisiniz ve (bir ters eğik çizgi görüntülemek için iki ters eğik çizgi).

Ayrıca, özel anahtar sözcüklerin yorumlanmayacağı şekilde tek tırnak işareti yerine çift tırnak işareti de kullanabilirsiniz.

:; Bu, IMHO, kötü bir uygulamadır, ancak kodunuzu yaparsa daha güzel bak, o Burada

kaçıp yollardan bazı örnekler

:) değerinde olduğunu tahmin (DR sürümünü çeşit TL gibi)
puts 'abc\nabc' # Single quotes ignore special keywords 
puts "abc\\nabc" # Escaping a special keyword (preferred technique, IMHO) 
p "abc\nabc" # The "p" command does not interpret special keywords 
0

kullanın% q örneğin bir dize oluşturmak için:

str = %q{abc\nklm} 
    puts str #=> 'abc\nklm' 

veya

puts %q{abc\nklm} 

veya kaçış karakteri kullanın 'Abc \ nabc' interpolated olmayacak gibi Ruby

puts "abc\\nklm" 
1

, edebi tek bir teklifle içinde dizeleri.

1.9.3p194 :001 > print 'abc\nabc' 
abc\nabc => nil 

vs ile çift tırnak

1.9.3p194 :002 > print "abc\nabc" 
abc 
abc => nil 
i p yerine puts/ print kullanımına öneririm
3

str = "abc\nabc" 
=> "abc\nabc" 
str 
=> "abc\nabc" 
Ayrıca o size dizede bir yeni satır istiyorum yoksa ' `bir hazır mı istiyor bu

puts 'abc\nabc' 
İlgili konular