2015-09-30 2 views
5

私は、サポートしているコードベースで私が遭遇したいくつかの文字列の連結に驚いています。なぜ、実際には、以下のように2つの文字列を連結して管理していますか?驚くべき文字列連結

queue_name = 'gen-request-' "#{ENV['USERNAME'].gsub('.','')}" 
=> "gen-request-robertkuhar" 

私は2つの文字列の間に '+'が表示されると予想していましたが、そこにはありません。それは暗示されているのでしょうか?

これは、中間の文字列補間では意味があることは分かっています。それは私が求めているものではありません。私はこれが最初に働くことを可能にする言語構文について何を知りたいのですか?

+2

https://stackoverflow.com/questions/18193792/where-is-rubys-string-literal-juxtaposition-feature-officially-documented – cremno

+0

答えは同じですが、私はこれが "並置されている場所はどこにあるのか"の質問と重複しているとは思わない。 –

答えて

2

これは、文字列リテラルとリテラル構文の一部でのみ機能します。

2つの文字列リテラルの間に空白だけがある場合、それらは1つの文字列に変換されます。これは、Cの後のバージョンから借りられた規約で​​す。

+0

ああ私。あなたは毎日新しいことを学びます。 https://stackoverflow.com/questions/18193792/where-is-rubys-string-literal-juxtaposition-feature-officially-documented http://stackoverflow.com/questions/12120944/how-does-concatenation-of -two-string-literals-work –