What is Ruby equivalent of Python's `s= "hello, %s. Where is %s?" % ("John","Mary")`

In Python, this idiom for string formatting is quite common

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

What is the equivalent in Ruby?

2

4 Answers

The easiest way is string interpolation. You can inject little pieces of Ruby code directly into your strings.

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

You can also do format strings in Ruby.

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

Remember to use square brackets there. Ruby doesn't have tuples, just arrays, and those use square brackets.

8

In Ruby > 1.9 you can do this:

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

See the docs

2

Almost the same way:

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

Actually almost the same

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like