In Python ist diese Redewendung für die Formatierung von Zeichenfolgen weit verbreitet
s = "hello, %s. Where is %s?" % ("John","Mary")
Was ist das Äquivalent in Ruby?
In Python ist diese Redewendung für die Formatierung von Zeichenfolgen weit verbreitet
s = "hello, %s. Where is %s?" % ("John","Mary")
Was ist das Äquivalent in Ruby?
Antworten:
Der einfachste Weg ist die String-Interpolation . Sie können kleine Teile von Ruby-Code direkt in Ihre Zeichenfolgen einfügen.
name1 = "John"
name2 = "Mary"
"hello, #{name1}. Where is #{name2}?"
Sie können Zeichenfolgen auch in Ruby formatieren.
"hello, %s. Where is %s?" % ["John", "Mary"]
Denken Sie daran, dort eckige Klammern zu verwenden. Ruby hat keine Tupel, nur Arrays, und diese verwenden eckige Klammern.
'#{name1}'
nicht dasselbe ist wie "#{name1}"
.
'#{"abc"}' # => "\#{\"abc\"}"
aber was Sie wollen ist"#{"abc"}" # => "abc"
In Ruby> 1.9 können Sie dies tun:
s = 'hello, %{name1}. Where is %{name2}?' % { name1: 'John', name2: 'Mary' }
Fast genauso:
irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"