In Exercise 9 I threw you some new stuff, just to keep you on your toes. I showed you two ways to make a string that goes across multiple lines. In the first way, I put the characters \n (back-slash n) between the names of the months. What these two characters do is put a new line character into the string at that point.
This use of the \ (back-slash) character is a way we can put difficult-to-type characters into a string. There are plenty of these "escape sequences" available for different characters you might want to put in, but there's a special one, the double back-slash which is just two of them \\. These two characters will print just one back-slash. We'll try a few of these sequences so you can see what I mean.
Another important escape sequence is to escape a single-quote ' or double-quote ". Imagine you have a string that uses double-quotes and you want to put a double-quote in for the output. If you do this "I "understand" joe." then Ruby will get confused since it will think the " around "understand" actually ends the string. You need a way to tell Ruby that the " inside the string isn't a real double-quote.
To solve this problem you escape double-quotes and single-quotes so Ruby knows to include in the string. Here's an example:
"I am 6'2\" tall." # escape double-quote inside string 'I am 6\'2" tall.' # escape single-quote inside string
The second way is by using here document syntax, which uses <<NAME and works like a string, but you also can put as many lines of text you as want until you type NAME again. We'll also play with these.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
tabby_cat = "\tI'm tabbed in." persian_cat = "I'm split\non a line." backslash_cat = "I'm \\ a \\ cat." fat_cat = <<MY_HEREDOC I'll do a list: \t* Cat food \t* Fishies \t* Catnip\n\t* Grass MY_HEREDOC puts tabby_cat puts persian_cat puts backslash_cat puts fat_cat
Look for the tab characters that you made. In this exercise the spacing is important to get right.
$ ruby ex10.rb I'm tabbed in. I'm split on a line. I'm \ a \ cat. I'll do a list: * Cat food * Fishies * Catnip * Grass $