Ответ 1
-
"Процентные литералы" обычно являются хорошим способом для некоторой информации Google:
-
#{}
называется "строковой интерполяцией".
В статье Matt о высушивании тестов огурца, Аслак предлагает следующее.
Когда у меня много котировок, я предпочитаю это:
Учитывая, что% {я ввожу "# {User.first.username}" в "имя пользователя" }
Что называется конструкцией %{CONTENT}
? Будет ли кто-то против ссылки на него в некоторых документах? Я не уверен, как это сделать.
Там также материал о %Q
. Это эквивалентно просто %
? Что из фигурных скобок? Можете ли вы использовать квадратные скобки? Они работают по-разному?
Наконец, что называется конструкцией #{<ruby stuff to be evaluated>}
? Есть ли ссылка на это в документации где-то тоже?
"Процентные литералы" обычно являются хорошим способом для некоторой информации Google:
#{}
называется "строковой интерполяцией".
Ни один из других ответов на самом деле не отвечает на вопрос.
Это обозначение знака процента. Знак процента указывает на то, что следующий символ является буквенным разделителем, и вы можете использовать любой (не буквенно-цифровой), который вы хотите. Например:
%{stuff}
%[stuff]
%?stuff?
и т.д. Это позволяет вам помещать в строку двойные кавычки, одинарные кавычки и т.д. без экранирования:
%{foo='bar with embedded "baz"'}
возвращает буквенную строку: foo = 'bar со встроенным "baz"'
За знаком процента может следовать модификатор буквы, чтобы определить, как строка интерполируется. Например, %Q[ ]
- это интерполированная строка, %q[ ]
- это неинтерполированная строка, %i[ ]
- это неинтерполированный массив символов и т.д. Так, например:
%i#potato tuna#
возвращает этот массив символов:
[:potato, :tuna]
Подробности здесь: Wikibooks
#{1+1}
называется String Interpolation.
I и Wikibooks, ссылайтесь на материал %
как на "% нотации". Ссылка здесь. Обозначение %
принимает любой разделитель, если он не является буквенно-цифровым. Он также может принимать модификаторы (вроде того, как регулярные выражения принимают параметры), одним из которых, что интересно, является то, разрешите ли вы #{}
-строчную интерполяцию строк (это также включено по умолчанию).
%
затем делает некоторые специальные вещи к нему, придавая этой нотации некоторые отличные, если немного загадочные для новичков, терпение. Например, %w{hello world}
возвращает массив ['hello','world']
. %s{hello}
возвращает символ :hello
.