What Was That?
In Lesson 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.
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.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
- 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
What You Should See
Look for the tab characters that you made. In this exercise the spacing is important to get right.
- $ ruby exploit10.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
- $
Extra Credit
Search online to see what other escape sequences are available.Combine escape sequences and format strings to create a more complex format.
No comments:
Post a Comment