"#{}"
而非 +
串接字串。# bad
full_name = first_name + ' <' + last_name + '>'
# good
full_name = "#{first_name} <#{last_name}>"
原因:使用 string interpolation 可以讓程式顯得更直觀。而且 +
會產生一堆不必要的 new object。
<<
而非 +
串接字串html << "<h2>Post Title </h2>"
原因:String#<<
比 String#+
速度快的多。而且 +
會產生一堆不必要的 new object。
" "
(double quote) 而非' '
(single quote) 包覆字串name = "foobar"
string = "#{name}"
# => foobar
string = '#{name}'
# => #{name}
原因: 雖然 ' '
和 " "
都可以用來宣告字串。但" "
才有 string interpolation (double quote)效果。
%()
處理需要 string interpolation 但同時也需要 " "
(double quote) 的狀況有時候我們不避免的需要寫出這樣的 code
<%= "<div class=\"name\"> #{name} </div>" %>
雖然可以透過將 " "
換成 ' '
讓 code 不那麼粘膩。
<%= "<div class='name'> #{name} </div>" %>
但其實還有這一招使用 %()
,可以確保事情不會變得更加複雜。
<%= %(<div class="name">#{name}</div>) %>