Interpolera en sträng

Ruby:
Interpolera en sträng

Hur man gör:

Interpolering görs med #{} inuti en “dubbelciterad” sträng. Här är några exempel:

namn = 'Gustav'
hälsning = "Hej, #{namn}!"
puts hälsning  # => Hej, Gustav!

tid = Time.now
tid_meddelande = "Klockan är nu #{tid.strftime('%H:%M')}."
puts tid_meddelande  # => Klockan är nu 14:30.

summa = 10 + 15
meddelande = "Resultat: #{summa}. Bra jobbat!"
puts meddelande  # => Resultat: 25. Bra jobbat!

Fördjupning

Stringinterpolering har funnits i Ruby sedan det första publika releasen 1995. Det är bättre än konkatenation (+) för prestanda och läsbarhet. När du interpolerar, skapas ingen ny sträng förrän det är dags att utvärdera den fullständiga strängen. Metoden to_s anropas på varje objekt inom interpoleringskoden, så du kan stoppa nästan vad som helst inne i #{}.

Alternativ till interpolering inkluderar strängkonkatenering och sprintf eller %-notationen. Men interpolering är vanligtvis renare:

klassiker = "pi = " + Math::PI.to_s
puts klassiker  # => pi = 3.141592653589793

med_sprintf = "pi = %f" % Math::PI
puts med_sprintf  # => pi = 3.141593

interpolerat = "pi = #{Math::PI}"
puts interpolerat  # => pi = 3.141592653589793

Se även