Text Processing
String Interpolation
Interpolation places variable values and expressions inside a string.
interpolation
Ruby evaluates `#{...}` inside a double-quoted string.
String Interpolation
string_interpolation.rb
Replay: real traced execution (multi-file project)
name = "Ada"
points = 7
message = "#{name} scored #{points * 2}"
tag = "#{name.downcase}-#{points}"
puts message
puts "tag=#{tag}"
name = "Matz"
points = 7
message = "#{name} scored #{points * 2}"
tag = "#{name.downcase}-#{points}"
puts message
puts "tag=#{tag}"
name = "Grace"
points = 7
message = "#{name} scored #{points * 2}"
tag = "#{name.downcase}-#{points}"
puts message
puts "tag=#{tag}"
name ← Ada, points ← 7, message ← Ada scored 14, tag ← ada-7
1name→ Ada = "Ada" #@name="Matz", "Grace"2points→ 7 = 734message→ Ada scored 14 = "#{nameAda} scored #{points7 * 2}"5tag→ ada-7 = "#{name.downcaseada}-#{points7}"67puts messageAda scored 148puts "tag=#{tagada-7}"outputAda scored 14 tag=ada-7
name ← Matz, points ← 7, message ← Matz scored 14, tag ← matz-7
1name→ Matz = "Matz"2points→ 7 = 734message→ Matz scored 14 = "#{nameMatz} scored #{points7 * 2}"5tag→ matz-7 = "#{name.downcasematz}-#{points7}"67puts messageMatz scored 148puts "tag=#{tagmatz-7}"outputMatz scored 14 tag=matz-7
name ← Grace, points ← 7, message ← Grace scored 14, tag ← grace-7
1name→ Grace = "Grace"2points→ 7 = 734message→ Grace scored 14 = "#{nameGrace} scored #{points7 * 2}"5tag→ grace-7 = "#{name.downcasegrace}-#{points7}"67puts messageGrace scored 148puts "tag=#{taggrace-7}"outputGrace scored 14 tag=grace-7