2016-03-30 6 views
0

ルビコードで文字列を2行に分割する方法は? 特定の記号はありますか?ルビ構文で文字列を2行に分割する方法

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

enter image description here バックスラッシュ正しく動作しません:私はそのような何かをしたい

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

+0

はトラブルPRYでこれをやっていました。これをプレーンテキストエディタで試して、コンソールから実行してください。 – JLB

+0

質問に重要な情報を表示するために画像を使用しないでください。情報をコピー/ペーストすることはできません。また、検索エンジンはそれをインデックスに登録して、他の人があなたの質問を見つけるのを助けることもできません。プラスリンクは腐って壊れます。代わりに、あなたの質問に情報をコピー/貼り付けてください。 –

答えて

3

Rubyは自動的に隣接している2つの文字列を連結しますRubyが何をすべきかを理解することを期待してください。あなたが使用できるよう

\は、継続としてラインをマーク:

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

あるいは、+文字列の連結に依存している:

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

それはほとんどの場合ですので、私はおそらく+を使用したいですすでに文字列を結合するために使用されているので、その意味は非常に明白です。 \を使用すると、実際に長い式を分割するのではなく、実際に長い式を結合することになります。

あなたの文字列が本当に長い場合は、あなたが他のいくつかのトリックを使用することができます:あなたはスペースで文字列を参加させたい場合は、このような文章を再結合として、

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

を:

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

をまたは:

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

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

か::などの上または単に何かのいくつかの組み合わせ

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

あなたはそうのように、文字列は次の行に続けて示すためにバックスラッシュを使用することができます。

str = "this is a long \ 
string" 

print str # => this is a long string 

あなたの文字列があまりにも大きい取得する場合、代わりにここにドキュメントを使用するためには良い考えかもしれません。彼らはあなたがコードの途中でテキストの断片を書くことができます:

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は、あなたがそれを与えたい任意の名前にすることができます。 here docs hereについて詳しく知ることができます。

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

ので、あなたは、単に行を分割してできません。

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

は、通常のラインエンドが割り当ての終わりを意味します:

+0

バックスラッシュは期待通りに機能しません!一例として、私はあなたのために画像を添付しました。 – andgursky

+0

@andgurskyバックスラッシュでコードを実行しようとしましたか?表示された画像は、使用するハイライトプログラムのバグのように見えますが、プログラムはうまく動くはずです。 – SlySherZ

関連する問題