10

単項マイナスとの対称性を高める以外に、単項プラス演算子がNumericクラスで定義されているのはなぜですか?++i(ほとんどの非ルビイストが考えるのとは異なり、増加しないi)のようなものを書くことを可能にする混乱を引き起こすことを除いて、それにいくつかの実用的な価値がありますか?

カスタムクラスで単項プラスを定義すると便利なシナリオを考えることができます(たとえば、セクシーなDSLを作成している場合)。したがって、定義できることは問題ありませんが、Ruby番号ですでに定義されているのはなぜですか。

4

3 に答える 3

9

おそらく、他のプログラミング言語との一貫性と、単項マイナスを反映することの両方の問題です。

これに対するサポートは、Rubyプログラミング言語(Rubyを設計したまつもとゆきひろによって書かれた)で見つかりました。

単項プラスは許可されますが、数値オペランドには影響しません。単にそのオペランドの値を返します。単項マイナスとの対称性のために提供されており、もちろん再定義できます。

于 2011-04-15T18:19:54.870 に答える
5

ドキュメントに記載されているように、文字列がフリーズすると、単項プラス演算子は可変文字列を返します。

于 2018-10-22T12:35:55.133 に答える
1

私が見る1つの考えられる理由は、数値が正であると明示的に述べることです(デフォルトでは正ですが)。

ruby-1.9.2-p136 :051 > +3
 => 3 
ruby-1.9.2-p136 :052 > 3
 => 3 
于 2011-04-15T18:10:09.753 に答える