2015-09-30 19 views
5

Desteklediğim bir kod tabanında tökezlediğim bir dizeyle birleştirmeye şaşırdım. Neden, ya da ne kadar gerçekten, aşağıdaki iki dizeyi birleştirmeyi yönetiyor?Şaşırtıcı bir dizgi birleştirme

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

İki dizenin arasında bir '+' görmeyi bekledim, ancak orada değil. Ima ya da bir şey mi?

Bu, ortadaki dize enterpolasyonu ile daha mantıklı olduğunu biliyorum. Bu benim sorduğum şey değil. Bunun ilk etapta çalışmasına izin veren dil sözdizimi hakkında ne olduğunu bilmek istiyorum.

+2

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

+0

'un daha sonraki sürümlerinden ödünç alınan bir kongre. Bunun "yan yana belgelenmiş belge" sorusunun bir kopyası olduğunu sanmıyorum. –

cevap

2

Bu yalnızca dize değişmezleri ve sözdizimi sözdiziminin bir kısmı için çalışır.

Aralarında yalnızca boşluk ile 2 dize değişmezleriniz varsa, bunlar tek bir dizeye dönüştürülür. C.

+0

Oh benim. Her gün yeni bir şey öğreniyorsun. https://stackoverflow.com/questions/18193792/where-is-rubys-string-literal-juxtaposition-feature-officially-documented http://stackoverflow.com/questions/12120944/how-does-concatenation-of -iki dize değişmezleri-iş –