2015-10-06 74 views
0

我知道,通過使用%{x}而不是#{x}來調用字符串內的變量,將相同的格式應用於多個變量。有人可以詳細說明嗎?Ruby:%{x}與#{x}?

+2

您能否提供使用'%{x}'和'#{x}'的上下文。這將有助於回答你的問題。 –

回答

1

小自我解釋實施例:

2.1.1 :009 > x=10 
=> 10 
2.1.1 :010 > "num is #{x}" 
=> "num is 10" 
2.1.1 :011 > "num is %{x}" 
=> "num is %{x}" 
2.1.1 :012 > 

#{x}是變種x在字符串內的內插;這是Ruby中方便的構造來替換字符串concat。在這裏,Ruby在我們傳遞的對象中執行.to_s方法。這裏x; x.to_s在被連接之前被調用。

對於%{x}這個構造用於在Rails中實現的I18n。在調用翻譯方法時設置值x.t(:some_symbol, x: some_value)

0

%{}與字符串的%方法一起使用,在這種情況下,它使用散列作爲參數。

h = {x: "three", y: "Hi"} 
p "%{y}, num is %{x}." % h # => "Hi, num is three."