Книга: Программирование на языке Ruby

2.2. Альтернативная нотация для представления строк

2.2. Альтернативная нотация для представления строк

Иногда встречаются строки, в которых много метасимволов, например одиночных и двойных кавычек и т.д. В этом случае можно воспользоваться конструкциями %q и %Q. Вслед за ними должна идти строка, обрамленная с обеих сторон символами-ограничителями; лично я предпочитаю квадратные скобки ([]).

При этом %q ведет себя как одиночные кавычки, a %Q - как двойные.

S1 = %q[Как сказал Магритт, "Ceci n'est pas une pipe."]
s2 = %q[Это не табуляция: (t)] # Равнозначно 'Это не табуляция: t'
s3 = %Q[А это табуляция: (t)]  # Равнозначно "А это табуляция: t"

В обоих вариантах можно применять и другие ограничители, помимо квадратных скобок: круглые, фигурные, угловые скобки.

s1 = %q(Билл сказал: "Боб сказал: 'This is a string.'")
s2 = %q{Дpyгaя строка.}
s3 = %q<B этой строке есть специальные символы '" [ ] (){}.>

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

s1 = %q:"Я думаю, что это сделала корова г-жи О'Лири," сказал он.:
s2 = %q*r - это control-M, a n - это control-J.*

Оглавление книги

Оглавление статьи/книги

Генерация: 7.194. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз