Что такое Ruby эквивалентно `s =" привет Python,% s. Где% s? " % ("Джон", "Мэри") ` - PullRequest
136 голосов
/ 24 августа 2010

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

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

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

Ответы [ 4 ]

236 голосов
/ 24 августа 2010

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

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

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

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

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

51 голосов
/ 22 июня 2012

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

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

См. Документы

19 голосов
/ 24 августа 2010

Почти так же:

irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"
9 голосов
/ 24 августа 2010

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

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