2

メッセージに示されているように、ルビーでは一重引用符を使用すると二重引用符よりも高速になります。ルビーで一重引用符を使用する場合と二重引用符を使用する場合のパフォーマンスは向上しますか?

では、なぜ誰もが二重引用符(または両方)を使用するのですか?

いくつかの例 :

(私は知っています、それは全員ではなく大多数です。)

編集1:補間は理由ではありません!

シナトラでは、二重引用符は必ずしも補間やこのような特別なものではありません:

it "defines HEAD request handlers with HEAD" do
4

5 に答える 5

7

二重引用符を使用すると、補間を実行できます。"Number of users : #{@count_user}"

さらに、ベンチマークを見てみると、せいぜいそれは問題ではなく、オーバーヘッドは非常に小さく、一部のベンチマークは二重引用符で実際に高速です...

于 2012-08-01T13:54:25.900 に答える
5

二重引用符は文字列補間を可能にします。単一引用符は文字列内の何も評価しませんが、二重引用符は評価します。たとえば、二重引用符を使用するとエスケープ文字を使用できますが、一重引用符を使用することはできません。

  "he said \n hello"

2行になりますが

  'he said \n hello'

中央に「\n」が含まれる文字列になります

于 2012-08-01T13:53:18.360 に答える
2

1つの理由は、文字列補間が二重引用符でサポートされているが、一重引用符ではサポートされていないことです。

例えば:

some_var = 15
"I have #{some_var} cats"
# => "I have 15 cats"

'I have #{some_var} cats"
# => "I have \#{some_var} cats"

個人的には、見た目がすっきりしていると思うので、可能な場合は一重引用符を好みます。ただし、文字列補間は、二重引用符を使用する非常に重要な理由の1つです。

パフォーマンスの問題に関しては、それは非常に無視できるので、パフォーマンスよりも実際には好みの問題です。

于 2012-08-01T13:52:09.580 に答える
0

そのスレッドを実際に正しく読んだかどうかはわかりませんが、@ zeteticは、二重引用符を使用する方がわずかに高速であることを実際に発見しました。それにもかかわらず、このテストは100万を超える割り当てで行われたため、その点では、どちらも基本的に同じ速度です。

それはすべて好みに帰着します。多くの人は一重引用符が不可能な言語から来ているので、二重引用符に慣れています。そのすべての好みの問題。

于 2012-08-01T13:54:21.650 に答える
0

それは答えられて受け入れられました、そしてこれらのいくつかは他を繰り返しています、しかし私の2¢の価値があります。

  1. 二重引用符を使用するということは、後で補間が必要なものを文字列に追加したい場合に、引用符を変更せずに追加できることを意味します。
  2. 補間を必要とする文字列と必要としない文字列の間の一貫性。
  3. 文字列にすべての英語を含めることができる。エスケープしたり、引用符を変更したりせずに、「しない」、「ジム」。
  4. \\nや\tなどの文字列にエスケープ文字を埋め込む
于 2012-08-02T04:20:49.533 に答える