新しい行に文字列を続けるには、Ruby のバックスラッシュを使用しますか?

概要

プルリクエストの Ruby コード行をレビューしています。これがバグなのか、それともこれまでに見たことのない機能なのかはわかりません。

puts "A string of Ruby that"\
  "continues on the next line"

バックスラッシュはこれらの文字列を連結するのに有効な文字ですか?それともこれはバグですか?

解決策

それは有効なコードです。

バックスラッシュは行の継続です。コードには引用符で囲まれたテキストが 2 つ含まれています。実行は 2 つの文字列のように見えますが、Ruby は空白で区切られた実行を連結するため、実際には単なる 1 つの文字列です。

実際には単なる 1 つの文字列である、引用符で囲まれた 3 つのテキストの例:

"a" "b" "c"
=> "abc"

 行継続を使用した、実際には単なる 1 つの文字列であるテキストを 3 回引用符で囲んだ例:

"a" \
"b" \
"c"
=> "abc"
"a" +
"b" +
"c"
=> "abc"

その他の行継続の詳細: 「Ruby はセミコロンと改行文字をステートメントの終わりとして解釈します。ただし、Ruby が行末に +、-、バックスラッシュなどの演算子を見つけた場合、それらはステートメントの継続を示します。」 - Ruby クイックガイド

編集:コメント内の@cesoidからの良い説明…バックスラッシュはステートメントの継続を示すだけですが、+と-はステートメントを継続し、通常の操作を実行します。言い換えれば、バックスラッシュは「削除」されますが、+ と - は「削除」されません。 + と - は複数の行にまたがって機能する演算子であると言ったほうが理にかなっています (Ruby の他の処理と同様)。バックスラッシュが異なります。たとえば、1 行の 2 つの文字列の間にバックスラッシュを入れると、構文エラーが発生します。