Ruby strings store text and can be combined with interpolation.

string interpolation `#{...}` inserts the value of a Ruby expression inside a double-quoted string.

Strings

first_name
strings.rb
Replay: real traced execution (multi-file project)
first_name = "Ada"
language = "Ruby"
greeting = "Hello, #{first_name} from #{language}!"

puts greeting
puts "letters=#{first_name.length}"
first_name = "Matz"
language = "Ruby"
greeting = "Hello, #{first_name} from #{language}!"

puts greeting
puts "letters=#{first_name.length}"
first_name = "Grace"
language = "Ruby"
greeting = "Hello, #{first_name} from #{language}!"

puts greeting
puts "letters=#{first_name.length}"
  1. first_name ← Ada, language ← Ruby, greeting ← Hello, Ada from Ruby!

    1first_name→ Ada = "Ada"  #@first_name="Matz", "Grace"2language→ Ruby = "Ruby"3greeting→ Hello, Ada from Ruby! = "Hello, #{first_nameAda} from #{languageRuby}!"45puts greetingHello, Ada from Ruby!6puts "letters=#{first_name.length3}"
    outputHello, Ada from Ruby!
    letters=3
  1. first_name ← Matz, language ← Ruby, greeting ← Hello, Matz from Ruby!

    1first_name→ Matz = "Matz"2language→ Ruby = "Ruby"3greeting→ Hello, Matz from Ruby! = "Hello, #{first_nameMatz} from #{languageRuby}!"45puts greetingHello, Matz from Ruby!6puts "letters=#{first_name.length4}"
    outputHello, Matz from Ruby!
    letters=4
  1. first_name ← Grace, language ← Ruby, greeting ← Hello, Grace from Ruby!

    1first_name→ Grace = "Grace"2language→ Ruby = "Ruby"3greeting→ Hello, Grace from Ruby! = "Hello, #{first_nameGrace} from #{languageRuby}!"45puts greetingHello, Grace from Ruby!6puts "letters=#{first_name.length5}"
    outputHello, Grace from Ruby!
    letters=5

Follow the String

  1. first_name starts as "Ada".
  2. language is "Ruby".
  3. greeting becomes Hello, Ada from Ruby!.
  4. first_name.length is 3.
  5. The program prints the greeting and letters=3. | first_name | greeting | letters | | --- | --- | --- | | Ada | Hello, Ada from Ruby! | 3 | | Matz | Hello, Matz from Ruby! | 4 | | Grace | Hello, Grace from Ruby! | 5 |

Exercise: strings.rb

Reproduce Hello, Ada from Ruby! and letters=3, then use the pinned names Matz and Grace to predict each letters value.