回答
它用於字符串內插:(wikipedia, ctrl+f "ruby")
apples = 4
puts "I have #{apples} apples"
# or
puts "I have %s apples" % apples
# or
puts "I have %{a} apples" % {a: apples}
的輸出將是:
I have 4 apples
String interpolation, Definition:
在Ruby,串內插是指雙面打印的能力,引用的字符串來執行Ruby代碼,並用該代碼的評估替換部分字符串(用#{...}表示)。
這是注入數據(通常是一個變量的值,但可以是任何Ruby代碼的評估)到一個字符串中間的最常見方法。
一個是要知道:
puts "This User name is #{User.create(username: 'Bobby')}!"
這將使.to_s
用戶的實例對象的隱式調用。
如果您在用戶模型中定義的方法.to_s
:
class User
def to_s
self.username
end
將輸出:
puts "This User name is #{User.create(username: 'Bobby')}"
# => "This User name is Bobby"
在Ruby中,有三種插值方式,而#{}
只是一種方法。
apples = 4
puts "I have #{apples} apples"
# or
puts "I have %s apples" % apples
# or
puts "I have %{a} apples" % {a: apples}
這允許您評估字符串內的任意ruby代碼(僅限雙引號)。因此,例如,在像PHP你會做
$my_var = "The value of a = " . $a;
但在Ruby中,你只是做
my_var = "The value of a = #{a}"
這隻能如果字符串是在雙引號,和NOT單引號。如果我們使用單引號,那麼您將在文本中出現#{...}
您可以用它來表示要打印或放出的變量。例如:
puts "#{var}"
會將存儲在您的變量var
中的值放出。
這就是所謂的字符串插值
在Ruby中,串插指double-quoted strings執行Ruby代碼並替換部分字符串的能力(den由#{...}提交)與該Ruby代碼的評估。它是將數據注入到字符串中間的最常見方式(通常是一個變量的值,但可以是對任何Ruby代碼的評估)。
print "What is your name? "
name = gets.chomp
puts "Hello, #{name}"
注意,任何代碼都可以去括號內,不只是variable名。 Ruby將評估該代碼,無論返回它將嘗試將其插入到字符串中。所以你可以簡單地說「你好,#{gets.chomp}」,忘記名稱變量。不過,最好不要在大括號中加入長表達式。
[如果你要引用別人,你得屬性報價給他們。(http://ruby.about.com/od/sz/g/String-Interpolation.htm)。 –
downvoted因爲你用別人的定義,沒有給他的學分,它... – MrYoshiji
有1到時候我寫了這個)沒有解答,2。)我包括幾個鏈接到文章。不知道爲什麼你會低估這一點,但它是好的我猜,你的選擇授權SO。 –
- 1. Ruby中的「temps.each(&:valid?)」是什麼意思?
- 2. ruby中的「class#method」是什麼意思?
- 3. Ruby中的<>是什麼意思?
- 4. Ruby中的「<< - 」是什麼意思?
- 5. Ruby中的令牌「$$」是什麼意思?
- 6. Ruby中的+ =是什麼意思?
- 7. Ruby中的「陰影」是什麼意思?
- 8. 什麼意思 - >在Ruby中的意思是
- 9. 是什麼意思:是什麼意思?
- 10. 在Ruby中``[var_name]`是什麼意思?
- 11. 在Ruby中=〜和/ \是什麼意思?
- 12. 「do | |」是什麼意思?在Ruby中?
- 13. $$在Ruby中是什麼意思?
- 14. 在Ruby中,array * string是什麼意思?
- 15. || =在Ruby中是什麼意思?
- 16. 在Ruby中,&。!=是什麼意思?
- 17. 在Ruby中,「scoped」是什麼意思?
- 18. 'a'在Ruby open()中意味着什麼?| f |是什麼意思?意思?
- 19. 什麼是「:*」(冒號星號)在Ruby中是什麼意思?
- 20. 這段Ruby代碼是什麼意思?
- 21. 這個Ruby Regex是什麼意思?
- 22. ruby語法是什麼意思?
- 23. 這個ruby代碼是什麼意思?
- 24. Ruby這行代碼是什麼意思?
- 25. 是什麼意思,在Python中是什麼意思?
- 26. SURF的min_dist和max_dist是什麼意思,FlannMatcher是什麼意思
- 27. 「?」是什麼意思?調用jsp的標記是什麼意思?
- 28. %{}是什麼意思?
- 29. '#'是什麼意思?
- 30. 「?」是什麼意思?
我不知道你爲什麼問這個問題。 Google的基本信息會提供給您。閱讀[here](http://www.ruby-doc.org/core-2.1.1/doc/syntax/literals_rdoc.html#label-Strings)。或者在Stacoverflow本身。看到這個[搜索](http://stackoverflow.com/search?q=%5Bruby%5D+%22%23%7B%7D%22) –
@ArupRakshit你不能谷歌'#{}',你可以? – Stefan
是的,我無法谷歌#{}。感謝大家的幫助,這麼快雖然:) – Robbo