Data Types
Strings
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
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}"
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
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
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
first_namestarts as"Ada".languageis"Ruby".greetingbecomesHello, Ada from Ruby!.first_name.lengthis3.- 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.