Ruby automatisch zwei Strings verketten, die benachbart sind:
foo = 'a' 'b'
foo # => "ab"
Normalerweise wird ein Zeilenende bedeutet das Ende der Zuordnung:
foo = 'a'
'b'
foo # => "a"
so kann man nicht einfach die Linien brechen und erwarte Ruby herauszufinden, was zu tun ist.
\
markiert die Zeile als Fortsetzung, so könnten Sie:
foo = "a" \
"b"
foo # => "ab"
Oder setzen auf die +
String-Verkettung:
foo = 'a' +
'b'
foo # => "ab"
ich wahrscheinlich die +
benutzen würde, da es am häufigsten ist verwendet, um Strings bereits zu verbinden, so ist seine Bedeutung sehr offensichtlich. Die Verwendung von \
führt dazu, dass Leute wirklich langen Ausdrücken beitreten, anstatt sie zu unterbrechen.
Wenn die Saiten sind wirklich lang, können Sie einige andere Tricks:
foo = [
'foo',
'bar'
].join
foo # => "foobar"
Wenn Sie die Saiten mit einem Raum, wie rekombinieren Sätze anschließen möchten:
foo = [
'foo',
'bar'
].join(' ')
foo # => "foo bar"
oder:
foo = [
'foo',
'bar'
] * ' '
foo # => "foo bar"
Aufbauend auf all das würde ich verwenden eine Kombination der oben oder einfach so etwas wie:
long_str = 'This is a veeeeeeeryyyyyy' +
' looooonggggg string'
path = "//div/p[contains(., '#{ long_str }')]"
oder:
long_str = [
'This is a veeeeeeeryyyyyy',
'looooonggggg string'
].join(' ')
path = "//div/p[contains(., '%s')]" % long_str
hatte Mühe, diese in Pry tun. Versuchen Sie dies in einem einfachen Texteditor und führen Sie es von der Konsole aus. – JLB
Bitte verwenden Sie keine Bilder, um uns wichtige Informationen in einer Frage zu zeigen. Wir können die Informationen nicht kopieren und einfügen, noch können Suchmaschinen sie indizieren, um anderen bei der Suche nach Ihrer Frage zu helfen. Plus-Links verrotten und brechen. Kopieren Sie stattdessen die Informationen in Ihre Frage. –