0

どちらが良いですか?

1.1。

= link_to "Page", "/page", :class => "button", :data => {:theme => "green", :icon => "small-arrow"}

2.2。

= link_to "Page", "/page", class: "button", data: {theme: "green", icon: "small-arrow"}

3.3。

= link_to "Page", "/page", class: :button, data: {theme: :green, icon: "small-arrow"}

記号と文字列のメモリ割り当てが異なるため、記号が最適な使用方法であることがわかりました。

バージョン2は(私にとって)読みやすく、保守しやすいと思います。記号を編集して変換するよりも、文字列内の分離された単語を(スペースまたはダッシュで)表示/編集/追加する方が簡単/高速だからです。文字列(必要に応じて、2番目のクラスの「ボタンログイン」や他のテーマ「暗赤色」を追加するなど)。

2.ではなく1.または3.の表記を使用する重大な理由(パフォーマンスなど)はありますか?

4

2 に答える 2

3

シンボルだけでなく、新旧のハッシュ構文も関係していることに注意してください。

新しいハッシュ構文と記号を混在させるのは好きではありません。ほとんどの場合、新しい構文はよく見えます。次に例を示します。

{ width: 42, height: 24 }

しかし、それはシンボルで恐ろしいように見えます:

... class: :button ...

私の意見では、それは奇妙で人間が読める形式ではありません。私は3番目のオプションが嫌いです。だから、私はこのオプションを好みます(あなたはそれについて言及していませんでした):

= link_to "Page", "/page", :class => :button, 
   :data => { :theme => :green, :icon => "small-arrow" }

:classシンボルはシンボルと同じように書かれているので、これはより良いです:button。記号は、同じ構文で1行に記述する必要があります。

于 2012-06-13T18:32:25.280 に答える
2
  1. Ruby1.8および1.9で動作します。

  2. 1.9でのみ動作します。"button"ヒープに"green"格納されず、変更可能ですが、それらの値が重要であることを正確に伝えます。

  3. 1.9でのみ動作します。:buttonそして:green、その意図をより不十分に記述しているコードを犠牲にして、(わずかに)より高速になります。

つまり、2と3はハッシュ構文に関して同じです。1と2は、文字列と記号の正しい使用法に関して同じです。

于 2012-06-13T18:24:21.547 に答える