W Pythonie ten idiom dla formatowania ciągów jest dość powszechny
s = "hello, %s. Where is %s?" % ("John","Mary")
Jaki jest odpowiednik w Rubim?
W Pythonie ten idiom dla formatowania ciągów jest dość powszechny
s = "hello, %s. Where is %s?" % ("John","Mary")
Jaki jest odpowiednik w Rubim?
Odpowiedzi:
Najłatwiejszym sposobem jest interpolacja ciągów . Możesz wstrzykiwać małe fragmenty kodu Ruby bezpośrednio do swoich łańcuchów.
name1 = "John"
name2 = "Mary"
"hello, #{name1}. Where is #{name2}?"
W Rubim możesz także tworzyć łańcuchy formatujące.
"hello, %s. Where is %s?" % ["John", "Mary"]
Pamiętaj, aby użyć tam nawiasów kwadratowych. Ruby nie ma krotek, tylko tablice, a te używają nawiasów kwadratowych.
'#{name1}'
to nie to samo co "#{name1}"
.
'#{"abc"}' # => "\#{\"abc\"}"
ale to, czego chcesz, to"#{"abc"}" # => "abc"
W Ruby> 1.9 możesz to zrobić:
s = 'hello, %{name1}. Where is %{name2}?' % { name1: 'John', name2: 'Mary' }
Prawie w ten sam sposób:
irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"