Строки в языке Ruby

Строка является наиболее важным типом данным в языках программирования. Многие могут быть несогласны, но вполне очевидно, что компьютеры были созданы в качестве помощника человека. Человек в свою очередь воспринимает и понимает символьные данные.

Строка это набор символов. Строка в Ruby - объект. Именно этот факт и позволяет с легкостью выполнять различные операции над строками: конкатенация, анализ, выделение лексем и т.д.

Создать простейшую строку в Ruby можно заключив нужный текст в одинарные кавычки. Строки в одинарных кавычках воспринимаются интерпретатором буквально.

Экранирование в простейшей строке - возможно. Распознается только экранированная одинарная кавычка (\') и обратная косая черта (\\). Это очень полезно, когда необходимо в простейшей строке записать что-то содержащее одинарную кавычку или обратный слэш.

irb
2.6.0 :001 > full_name = 'Жанна д'Арк'
2.6.0 :002'> '

На третьей строчке мы допишем еще одну кавычку, чтобы интерпретатор IRB принял “законченное” выражение. Получим:

SyntaxError ((irb):1: syntax error, unexpected tCONSTANT, expecting end-of-input)

Такая запись привела к ошибке интерпретации нашего кода. Вторая одинарная кавычка будет считаться не орфографическим знаком в контексте нашей строки, а закрывающим элементом. Посмотрим на управляющие последовательности (\') и (\\), которые работают в строках обернутых в одинарные кавычки.

Чтобы предотвратить ошибку, мы можем использовать бэкслэш (\) для экранирования апострофа.

full_name = 'Жанна д\'Арк'
puts full_name
=> "Жанна д'Арк"

Пример экранирования обратной строки:

quote_from_wikipedia = 'В математике обратная косая черта обозначает разность множеств:
A \ B — множество элементов, которые входят в A, но не входят в B.' 

quote_from_wikipedia = 'В математике обратная косая черта обозначает разность множеств:
A \\ B — множество элементов, которые входят в A, но не входят в B.'

print quote_from_wikipedia
В математике обратная косая черта обозначает разность множеств: A \ B — множество элементов, которые входят в A, но не входят в B.

Обратите внимание, что если вы забудете поставить обратную косую черту для экранирования - Ruby сам проведет эту работу:

quote_from_wikipedia = 'В математике обратная косая черта обозначает разность множеств:
A \ B — множество элементов, которые входят в A, но не входят в B.'

print quote_from_wikipedia
В математике обратная косая черта обозначает разность множеств:
A \ B — множество элементов, которые входят в A, но не входят в B.

Гибкость Ruby позволяет нам ошибаться, но это иногда запутывает. Многие правила, исключения и особенности нужно просто запоминать.

Строки в двойных кавычках более гибкие и имеют больше управляющих последовательностей в своем арсенале. Среди них и такие, как табуляция и перевод строки.

with_tab = "АбраТабТабРа: (\t)" # знак табуляции
one_more_tab = with_tab = "АбраТабТабРа: \011” # альтернативный способ записи табуляции

Стоит отметить, что главной особенностью строки в двойных кавычках - возможность использовать выражения.