Meaning of #{ } in Ruby?

ruby, string

Solution

Why This Is a Good Question

This is a tough question to Google for unless you know the right search terms. The `#{}` operator technically performs expression substitution inside a string literal.

The Answer

The `#{}` literal is the operator used for interpolation inside double-quoted strings the same way that the backticks or `$()` construct would be used in Bash. From a practical point of view, the expression inside the literal is evaluated, and then the entire `#{}` expression (including both the operator and the expression it contains) is replaced in situ with the result.

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

Problem

The operation `#{ }` appears to be so fundamental that my Ruby book completely skips its definition. Can someone provide an explanation?

Original source