Читать «Учись программировать (на Ruby)» онлайн - страница 9
Крис Пайн
Вот ещё чего следует остерегаться: вы можете написать в программе ' поросёнок '*5, поскольку это просто обозначает 5 экземпляров строки ' поросёнок', соединённых вместе. Однако, вы не можете написать 5*'поросёнок', поскольку это обозначает 'поросёнок' экземпляров числа 5, что просто-напросто глупо.
И, наконец: а что, если я хочу, чтобы программа напечатала 'Ты шикарная!'? Можно попробовать так:
puts ''Ты шикарная!''
Ну так вот, это не будет работать; я даже не буду пробовать выполнить это. Компьютер подумал, что мы закончили строку. [После второго апострофа. –
puts '\'Ты шикарная!\''
'Ты шикарная! '
Обратная косая черта – это символ экранирования (escape character). Другими словами, если в строке стоит обратная черта и другой символ [которые образуют так называемую 'escape-последовательность». –
puts
'\'Ты шикарная!\''
puts
'обратная черта в конце строки:
\\ '
puts
'вверх\\вниз'
puts
'вверх\вниз'
'Ты шикарная!'
обратная черта в конце строки:
\
вверх\вниз
вверх\вниз
Поскольку обратная черта не экранирует 'в', но экранирует себя, две последних строки идентичны. Они не выглядят одинаковыми в коде программы, но в вашем компьютере они действительно одинаковы.
Если у вас есть другие вопросы, просто продолжайте читать дальше! В конце концов, я не могу отвечать на каждый вопрос на
3. Переменные и присваивание
До сих пор, каждый раз, когда мы выводили с помощью puts строку или число, всё, что мы выводили, исчезало. Я имею в виду, если мы хотели напечатать что-то дважды, мы должны были вводить это дважды с клавиатуры:
puts '
..ты
можешь
сказать
это
снова…'
puts '
..ты
можешь
сказать
это
снова…'
…ты
можешь
сказать
это
снова…
…ты
можешь
сказать
это
снова…
Вот было бы прекрасно, если бы мы могли просто ввести что-то один раз и потом обращаться к нему… сохранить его где-нибудь. Ну, конечно же, мы можем это сделать, иначе я бы не заговорил об этом!
Чтобы сохранить строку в памяти вашего компьютера, нам нужно дать строке какое-то имя. Программисты часто говорят об этом процессе как о присваивании, а имена они называют переменными. Имя переменной – это просто любая последовательность латинских букв и цифр, но первый символ должен быть буквой в нижнем регистре. Давайте снова испробуем нашу последнюю программу, но на этот раз я дам строке имя myString (хотя я с таким же успехом мог назвать её str или myOwnLittleString или henryTheEighth).
myString = '…ты можешь сказать это снова…' puts myString
puts myString
…ты
можешь
сказать
это
снова…
…ты
можешь
сказать
это
снова…
Каждый раз, когда вы пытаетесь что-нибудь сделать с myString, программа вместо этого делает это со строкой '…ты можешь сказать это снова…'. Вы можете думать о переменной myString как об «указателе на» строку '…ты можешь сказать это снова…'. А вот немного более интересный пример: