суббота, 14 июля 2012 г.

ex10.rb

В начале этого упражнение Зед немного комментирует предыдущее.
Далее говорится, что "\" (обратный слеш) в данном случае служит для того, чтобы использовать труднопечатные символы в строке. Есть очень много таких "эскейп-последовательностей", которые доступны разным символам, которые мы хотим употребить, но есть одна специальная последовательность. Это двойной бэкслеш, который представляет просто отакэ: "\\". Эти два символа просто выведут один бэкслеш. Мы посмотрим несколько последовательностей, чтобы было понятно о чем речь.
Также еще одним важным моментом является эскейп-последовательность, которая служит для того, чтобы экранировать одинарные кавычки ' или двойные "". Представим, что у нас есть строка, заключенная в двойные кавычки, а также нам надо в строке употребить двойные кавычки для вывода на экран. Если мы выполним вот такой код: "I "understand" Joe" - интерпретатор Ruby замешкается. Он будет думать, что " вокруг "understand" заканчивает строку. Нам нужно что-то, что скажет интерпретатору Ruby, что " внутри строки не настоящие двойные кавычки.
Для решения этой проблемы мы экранируем двойные и одинарные кавычки таким образом, что интерпретатор Ruby знает, что их надо включить для вывода.


"I am 6'2\" tall."  # escape double-quote inside string
'I am 6\'2" tall.'  # escape single-quote inside string


Второй способ - это использование синтаксиса документа, который использует <<NAME и работает как строка. Кроме того, сюда можно запихнуть сколько угодно строк, пока снова не напечатаем NAME. Мы с этим еще немного поиграем))

Прога:


bby_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


WYSS


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


EC

1. Escape sequences

Наиболее часто встречающиеся в строках:


  • \" – double quote - двойные кавычки
  • \\ – single backslash - один бэкслеш
  • \a – bell/alert - со звуком выдаст надпись. Надо с двух сторон поставить. Отак: "\aHello world\a".
  • \b – backspace - будет "съедать" по одному символу. Сколько \b поставить, столько символов "съест".
  • \r – carriage return - все, что до этого символа, не будет выводиться.
  • \n – newline - перепрыгнет на новую линию.
  • \s – space - пустое место.
  • \t – tab - поставит табуляцию.


2. Вот использование формат-стрингов и эскейп-последовательностей)


name = "Helen"
aim = "Ruby"
future = "harmony"

puts "My name is %s." %name
puts "My aims are learning %s very well and %s." %[aim, future]
puts "Learning programming gives me:"
ruby = <<MY_AIM
\t* happiness
\t* creation
\t* communication
\t* money for future house with pool
MY_AIM
print ruby
puts "I love the hole world!"


Комментариев нет:

Отправить комментарий