2016-03-30 18 views
0

Dizgeyi ruby ​​kodunda iki satıra nasıl bölerim? Belirli bir sembol var mı?Dizeyi ruby ​​sözdiziminde iki satıra bölme

def my_def 
    path = "//div/p[contains(., 'This is a veeeeeeeryyyyyy looooonggggg string')]" 
end 

Böyle bir şey yapmak isteyen:

def my_def 
    path = "//div/p[contains(., 'This is a veeeeeeeryyyyyy 
      looooonggggg string')]" 
end 

enter image description here Geri eğik çizgi doğru çalışmıyor!

+0

sorun gözetlemek bunu yapmaya vardı. Bunu düz bir metin düzenleyicide deneyin ve konsoldan çalıştırın. – JLB

+0

Lütfen bir soruda bize önemli bilgileri göstermek için görseller kullanmayın. Bilgileri kopyalayamaz/yapıştıramaz, başkalarının sorunuzu bulmasına yardımcı olmak için arama motorları bunu dizine ekleyemez. Artı bağlantılar çürümeye ve mola. Bunun yerine bilgileri kopyalayın/sorunuza yapıştırın. –

cevap

3

Yakut otomatik bitişik iki dizeyi bitiştirmek olacak Ruby'nin ne yapacağını anlamasını bekliyoruz.

\

devam olarak çizgiyi işaretler, böylece kullanabilirsiniz: en sık beri

foo = 'a' + 
     'b' 
foo # => "ab" 

muhtemelen + kullanmayı tercih ediyorum:

foo = "a" \ 
     "b" 
foo # => "ab" 

Veya, + dize birleştirme güvenmek zaten dizeleri birleştirmek için kullanılır, bu yüzden anlamı çok açıktır. \'u kullanmak, kullanıcıların onları kapatmak yerine gerçekten uzun ifadelere katılmalarına yol açar.

foo = [ 
    'foo', 
    'bar' 
].join(' ') 
foo # => "foo bar" 

: Böyle recombining cümle olarak bir boşluk, dizelerle katılmak istiyorsanız

foo = [ 
    'foo', 
    'bar' 
].join 
foo # => "foobar" 

: Dizeleriniz gerçekten uzun, bazı başka hileler kullanabilirsiniz ise

veya:

foo = [ 
    'foo', 
    'bar' 
] * ' ' 
foo # => "foo bar" 

Tüm bunları yapıyorum gibi üstünde veya basitçe bir şeyin bazı kombinasyonu:

long_str = 'This is a veeeeeeeryyyyyy' + 
      ' looooonggggg string' 
path = "//div/p[contains(., '#{ long_str }')]" 

ya:

long_str = [ 
    'This is a veeeeeeeryyyyyy', 
    'looooonggggg string' 
].join(' ') 
path = "//div/p[contains(., '%s')]" % long_str 
3

Sen dize belirtmek için geriye doğru bir çizgi kullanabilmesi gibi sonraki satırda devam eder: dize yol çok büyük olur

str = "this is a long \ 
string" 

print str # => this is a long string 

ise, yerine buraya dokümanlar kullanmak iyi bir fikir olabilir. Onlar kod ortasında metin parçalarını yazmaya izin:

str = <<HEREDOC 
This is my string :) 
Let's imbue code in the imbued doc: #{[4, 2, 3, 1].sort} 
HEREDOC 

print str 
# => This is my string :) 
# => Let's imbue code in the imbued doc: [1, 2, 3, 4] 

HEREDOC bunu vermek istediğiniz herhangi bir ad olabilir. here docs here hakkında daha fazla bilgi edinebilirsiniz.

foo = 'a' 
     'b' 
foo # => "a" 

yüzden sadece çizgiler kırmak ve olamaz:

foo = 'a' 'b' 
foo # => "ab" 

Normalde bir satır sonu atama sonunu ifade eder:

+0

Geri eğik çizgiler beklediğim gibi çalışmıyor! Örnek olarak sana bir resim ekledim. – andgursky

+0

@andgursky Kodu ters eğik çizgi ile çalıştırmayı denediniz mi? Gösterdiğiniz görüntü, kullandığınız vurgulama programında bir hataya benziyor, ancak programın düzgün çalışması gerekiyor. – SlySherZ

İlgili konular