Worauf kommt der unary plus Operator in Ruby?

8

Abgesehen von einer netten Symmetrie mit einem unären Minus, warum ist ein unärer Plus-Operator in Numeric class definiert? Gibt es irgendeinen praktischen Wert darin, außer Verwirrung zu verursachen, indem man Dinge wie ++i schreibt (was, im Gegensatz zu den meisten Nicht-Rubyisten, nicht i erhöht).

Ich kann mir ein Szenario vorstellen, in dem die Definition von unary plus in einer benutzerdefinierten Klasse nützlich sein könnte (sagen Sie, wenn Sie eine sexy DSL erstellen), also ist es in Ordnung, sie zu definieren, aber warum ist sie bereits auf Ruby-Nummern definiert?

    
Mladen Jablanović 15.04.2011, 17:58
quelle

2 Antworten

7

Vielleicht ist es nur eine Frage der Konsistenz, sowohl mit anderen Programmiersprachen, als auch um das unäre Minus zu spiegeln.

Unterstützung dafür in Die Programmiersprache Ruby (geschrieben von Yukihiro Matsumoto, der Ruby entworfen hat):

  

Das unäre Plus ist erlaubt, aber es hat keine Auswirkung auf numerische Operanden - es gibt einfach den Wert seines Operanden zurück. Es ist für Symmetrie mit unarischem Minus vorgesehen und kann natürlich neu definiert werden.

    
Matt Ball 15.04.2011, 18:19
quelle
1

Ein möglicher Grund, den ich sehe, ist explizit anzugeben, dass eine Zahl positiv ist (obwohl sie standardmäßig positiv ist).

%Vor%     
Mike Lewis 15.04.2011 18:10
quelle