Вопрос по ruby, string – Значение # {} в Ruby?

19

Операция#{ } кажется настолько фундаментальным, что моя книга по Ruby полностью пропускает свое определение. Может кто-нибудь дать объяснение?

Ваш Ответ

3   ответа
3

вы используете его для вставки выражения в строку. Ваша строка должна быть встроена в & quot; чтобы эта магия сработала, нет. Это намного быстрее и лучше, чем конкатенация строк.

var = "variable"
"this is a string with a #{var} in" => "this is a string with a variable in"
7

"three plus three is #{3+3}"

Будет ли вывод:

"three plus three is 6"

Обычно он используется для вставки значений переменных в строки без необходимости возиться с конкатенацией строк:

"Your username is #{user}"
33
Why This Is a Good Question

если вы не знаете правильные условия поиска.#{} Оператор технически выполняетexpression substitution внутриstring literal.

The Answer

#{} литерал - это оператор, используемый для интерполяции внутриdouble-quoted strings так же, как бэкстикс или$() Конструкция будет использоваться в Bash. С практической точки зрения выражение внутри литерала оценивается, а затем весь#{} выражение (включая оператор и содержащееся в нем выражение) заменяетсяin situ с результатом.

Related Links http://www.ruby-doc.org/docs/ruby-doc-bundle/Manual/man-1.4/syntax.html#string http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation Ruby (on Rails) syntax
@CodeGnome Да, заставить Google выкашливать эту информацию практически невозможно, если вы уже не знаете ответ. Toaster
Стоит отметить, что он также работает внутри%Q{...} струны, строки heredoc,%W{...} массивы, команды backtick,%x{...} команды и литералы регулярных выражений.
@Colin: Вот где есть symbolhound.com:symbolhound.com/?q=%23%7B%7D

Похожие вопросы