В Python эта идиома для форматирования строк довольно распространена

s = "hello, %s. Where is %s?" % ("John","Mary")

Что такое эквивалент в Ruby?

145
TIMEX 24 Авг 2010 в 11:34

4 ответа

Лучший ответ

Самый простой способ - это интерполяция строк. Вы можете вставлять небольшие кусочки кода Ruby прямо в ваши строки.

name1 = "John"
name2 = "Mary"
"hello, #{name1}.  Where is #{name2}?"

Вы также можете форматировать строки в Ruby.

"hello, %s.  Where is %s?" % ["John", "Mary"]

Не забудьте использовать квадратные скобки там. В Ruby нет кортежей, только массивы, и они используют квадратные скобки.

246
siegy22 4 Апр 2018 в 08:02

На самом деле почти то же самое

s = "hello, %s. Where is %s?" % ["John","Mary"]
9
phadej 24 Авг 2010 в 07:38

Почти так же:

irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"
20
Manoj Govindan 24 Авг 2010 в 07:37

В Ruby> 1.9 вы можете сделать это:

s =  'hello, %{name1}. Where is %{name2}?' % { name1: 'John', name2: 'Mary' }

См. Документацию

52
siegy22 4 Апр 2018 в 08:00