Вопрос начинающего Ruby - что делает нотация $ {...} в строковых литералах? - PullRequest
0 голосов
/ 02 июля 2010

Я читаю некоторый код на Ruby и не понимаю этот фрагмент:

thing = '${other-thing}/etc/'

Кажется, что он подставляет значение для ${other-thing} и использует его для построения String, но у меня нетЯ не смог воссоздать это сам.

РЕДАКТИРОВАТЬ: Извините, оказалось, что Maven (инструмент для сборки Java) выполнял некоторую предварительную обработку.Принятый ответ показывает, как можно сделать замену в прямом Ruby.

1 Ответ

3 голосов
/ 02 июля 2010
$ irb
irb(main):001:0> a = "Hello"  
=> "Hello"
irb(main):002:0> b = "world"
=> "world"
irb(main):003:0> puts "${a}, ${b}!"    # Doesn't work.
${a}, ${b}!
=> nil
irb(main):004:0> puts "#{a}, #{b}!"    # Works fine.
Hello, world!
=> nil
irb(main):005:0> puts '#{a}, #{b}!'    # Doesn't work.
#{a}, #{b}!
=> nil

Вы хотели #{...}, а не ${...} Я верю. Кроме того, вы не получаете подстановок внутри строк в одинарных кавычках, только в двойных кавычках (или эквивалентах - в Ruby существует множество способов разграничить строки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...