我知道,通過使用%{x}
而不是#{x}
來調用字符串內的變量,將相同的格式應用於多個變量。有人可以詳細說明嗎?Ruby:%{x}與#{x}?
0
A
回答
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."
您能否提供使用'%{x}'和'#{x}'的上下文。這將有助於回答你的問題。 –