在Python中,這個成語的字符串格式化是相當普遍的什麼是Ruby的等效Python的`s =「hello,%s。%s是哪裏?」 %( 「約翰福音」, 「瑪麗」)`
s = "hello, %s. Where is %s?" % ("John","Mary")
什麼是Ruby中相同呢?
在Python中,這個成語的字符串格式化是相當普遍的什麼是Ruby的等效Python的`s =「hello,%s。%s是哪裏?」 %( 「約翰福音」, 「瑪麗」)`
s = "hello, %s. Where is %s?" % ("John","Mary")
什麼是Ruby中相同呢?
最簡單的方法是string interpolation。你可以直接在你的字符串中注入一小段Ruby代碼。
name1 = "John"
name2 = "Mary"
"hello, #{name1}. Where is #{name2}?"
你也可以在Ruby中做格式化字符串。
"hello, %s. Where is %s?" % ["John", "Mary"]
記得在那裏使用方括號。 Ruby沒有元組,只有數組,而那些使用方括號。
幾乎相同的方式:
irb(main):003:0> "hello, %s. Where is %s?" % ["John","Mary"]
=> "hello, John. Where is Mary?"
其實相差無幾
s = "hello, %s. Where is %s?" % ["John","Mary"]
在Ruby 1.9,你可以這樣做:
s = "hello, %{name1}. Where is %{name2} ?" % { :name1 => 'John', :name2 => 'Mary' }
編輯:添加缺少「:的
:name1 :name2 不是? – masnun 2012-08-04 07:46:59
我在* Idomatic Ruby *中編輯了相同的內容 - 但現在我注意到接受的答案已經做到了 - 再次刪除了'編輯': -/ – toong 2014-08-07 11:16:20
當使用帶有字符串%運算符的散列時,格式字符串不存在,你會得到一個KeyError。 – user1164178 2015-02-11 00:52:44
有沒有字符串連接,只有字符串格式化。谷歌會回答這個問題,甚至比以往任何時候都更快......我花了大約20秒鐘才發現,你可以在Ruby中完全相同。 – delnan 2010-08-24 07:39:10
你不是要求連接,而是要求格式化/替換。你應該改變你的問題。順便說一下,在ruby中,使用+或<<運算符來執行連接。 – David 2010-08-24 07:49:00