четверг, 12 июля 2012 г.

ex6.rb

Зед сначала объяснят, что строка - это всегда кусочек текста, который мы хотим кому-л. показать или "экспортировать" из программы, которую мы пишем. Опознавательными знаками строки служат двойные "" или '' одинарные кавычки вокруг текста.
Строки могут содержать форматирующие символы. Для этого просто добавляются форматные переменные (например, %s, %d, %b), а затем % с переменной. Если нам нужно добавить несколько форматов в строку, мы должны использовать [ ] и переменные, разделенные запятой. Это, как если бы вы мне сказали купить продукты по списку: молоко, яйца, хлеб и суп.  Но только как программеры мы говорим:  "[milk, eggs, bread, soup]".
Другой путь добавления переменных в строку - это использование т.н. строковых интерполяций (string interpolation), которые юзают #{}.
Т.о. вместо использования форматных строк:


мы можем юзать отакэ:
 
name1 = "Joe"
name2 = "Mary"
puts "Hello #{name1}, where is #{name2}

вместо вот этого.

name1 = "Joe"
name2 = "Mary"
puts "Hello %s, where is %s?" % [name1, name2]


  • Здесь уместно будет упомянуть то, что я вычитала отута. Т.е. в первом случае мы употребляем т.н. "string interpolation". Во втором - "formatting string".
  • Строковая интерполяция обращается к переменной. Т.о. в этом случае  выведется переменная Joe, а не строка "Joe".
  • Т.е., как я поняла, строковая интерполяция выводит переменную, а формат стринг - строку. Как-то так :)
Ну, а потом Зед заботится о том, что нам надо бы привыкать к коротким переменным, типа x, y и т.д.

Прога:

x = "There are #{10} types of people."
binary = "binary"
do_not = "don't"
y = "Those who know #{binary} and those who #{do_not}."

puts x
puts y

puts "I said: #{x}."
puts "I also said: '#{y}'."

hilarious = false
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"

puts joke_evaluation

w = "This is the left side of..."
e = "a string with a right side."

puts w + e 
 
WYSS

There are 10 types of people.
Those who know binary and those who don't.
I said: There are 10 types of people..
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! false
This is the left side of...a string with a right side.


ЕС
 1. Написать во всей проге комменты сверху.
# assigning the variable
name1 = "Joe"
# assigning the variable
name2 = "Mary"
# outputs FORMAT string (est' formatirujuwie elementy)
puts "Hello %s, where is %s?" % [name1, name2]

# assigning the variable
name1 = "Joe"
# assigning the variable
name2 = "Mary"
# outputs the string s peremennymi
puts "Hello #{name1}, where is #{name2}?"

# assigning the variable, vnutri kotoroj toje est' variable
x = "There are #{10} types of people."
# assigning the variable
binary = "binary"
# assigning the variable
do_not = "don't"
# assigning the variable, vnutri kotoroj toje est' variable
y = "Those who know #{binary} and those who #{do_not}"

# outputs prisvoennuju peremennuju
puts x
puts y

# outputs the string s peremennoj
puts "I said: #{x}."
# outputs the string s peremennoj
puts "I said '#{y}'."

# assigning the variable
hilarious = false
# assigning the variable, vnutri kotoroj toje est' variable
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"

# outputs the variable
puts joke_evaluation# assigning the variable
name1 = "Joe"
# assigning the variable
name2 = "Mary"
# outputs FORMAT string (est' formatirujuwie elementy)
puts "Hello %s, where is %s?" % [name1, name2]

# assigning the variable
name1 = "Joe"
# assigning the variable
name2 = "Mary"
# outputs the string s peremennymi
puts "Hello #{name1}, where is #{name2}?"

# assigning the variable, vnutri kotoroj toje est' variable
x = "There are #{10} types of people."
# assigning the variable
binary = "binary"
# assigning the variable
do_not = "don't"
# assigning the variable, vnutri kotoroj toje est' variable
y = "Those who know #{binary} and those who #{do_not}"

# outputs prisvoennuju peremennuju
puts x
puts y

# outputs the string s peremennoj
puts "I said: #{x}."
# outputs the string s peremennoj
puts "I said '#{y}'."

# assigning the variable
hilarious = false
# assigning the variable, vnutri kotoroj toje est' variable
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"

# outputs the variable
puts joke_evaluation

# zadajuts9 peremennye
w = "This is the left side of..."
e = "a string with a right side."

# outputs dve peremennye v odnu stroku
puts w + e

# zadajuts9 peremennye
w = "This is the left side of..."
e = "a string with a right side."

# outputs dve peremennye v odnu stroku
puts w + e

2. Найти все случаи, где строка вставляется в строку. Их 4.
Первые два в строке 4:
y = "Those who know #{binary} and those who #{do_not}"
Вторые две тутачи: 
puts "I said: #{x}."
puts "I said '#{y}'."

3. Вы уверены, что всего 4 случая? Может, не 4? Мож, я вру?
Ага. Думаю, что их 5. Еще в строчке
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"

4. Объясните, почему соединение двух строк w & e с помощью + делает строку длиннее.
Это называется конкатенация. + просто говорит: "Возьми первую строку и присоедини к ней вторую".

Вывод:
Из этого упражнения я узнала, что:
Переменные можно добавлять двумя способами.
В первом случае с помощью форматирующих символов, где сначала пишется, например, %s, а потом добавляется % переменная. Получается форматная строка. Если надо добавить несколько форматирующих символов, они потом перечисляются в квадратных скобках через запятую.
Во втором случае можно использовать строковые интерполяции. Они выглядят вот так: #{}.

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

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