在Ruby中,如何在定義這些變量之前定義帶有插值變量的字符串?在Ruby中,如何在定義這些變量之前定義帶有插值變量的字符串?
一旦這些變量具有賦值的值,我需要做些什麼來執行插值?
tips = 'Hi,#{name},your order total price is #{price*count}'
name = 'roy'
price = 13.5
count = 10
tips.xxx = 'Hi,roy,your order total price is 135'
在Ruby中,如何在定義這些變量之前定義帶有插值變量的字符串?在Ruby中,如何在定義這些變量之前定義帶有插值變量的字符串?
一旦這些變量具有賦值的值,我需要做些什麼來執行插值?
tips = 'Hi,#{name},your order total price is #{price*count}'
name = 'roy'
price = 13.5
count = 10
tips.xxx = 'Hi,roy,your order total price is 135'
爲了評估所有#{...}
,你必須用雙引號Ruby代碼之間,否則它剛剛被打印成commong字符串。我想你想要返回類似'Hi,roy,your order total price is 135'
的東西,所以,你需要在之前創建名稱,價格和計數變量,因爲如果你不這樣做,那麼你會得到一個undefined local variable or method 'variable' for main:Object
錯誤,所以你可以嘗試:
name = 'roy'
price = 13.5
count = 10
tips = "Hi,#{name},your order total price is #{price*count}"
puts tips
# Hi,roy,your order total price is 135.0
對於你的情況,你可以使用late interpolation
:
tips = 'Hi, %{name},your order total price is %{price}'
name = 'roy'
price = 13.5
count = 10
tips % {name: name, price: price * count}
# => "Hi,roy,your order total price is 135"
鏈接到文件:https://ruby-doc.org/core-2.4.1/String.html#method-i-25
你的問題還不清楚。什麼是「品種」?什麼是「替代字符串」?什麼意思是「品種定義在替代串後面」?你的代碼有什麼問題?你有錯誤信息嗎?什麼是錯誤信息?你得到的結果不是你期待的結果嗎?你期望得到什麼結果?爲什麼?你得到的結果是什麼?兩者有什麼不同?你正在觀察的行爲不是所期望的行爲?什麼是期望的行爲,爲什麼,觀察到的行爲是什麼,以及它們以何種方式不同? –
你能提供一個你想要發生什麼的*精確*規範,包括任何和所有的規則,這些規則的異常,角落案例,特殊情況,邊界案例和邊緣案例?您是否可以提供示例輸入和輸出,以顯示您在正常情況下以及所有例外情況,角落情況,特殊情況,邊界情況和邊緣情況下預期會發生的情況? –