Dies ist eine theoretische Frage: Ist es möglich, das Verhalten von FalseClass so zu ändern, dass es wie TrueClass funktioniert? Es ist möglich, to_s, xor, & amp; | zu überschreiben Verhalten, aber das ist nicht genug.
Wenn Sie Test Driven Development möchten, folgen Sie dem Vorschlag meines Kollegen:
%Vor%Behauptungen funktionieren nicht, oder? Ist es möglich, den Test erfolgreich zu bestehen?
Es ist nicht möglich. Eine Möglichkeit, darüber nachzudenken, ist, dass es keine Methode Object#truthiness?
gibt, die neu definiert werden könnte.
Im Rubin-MRT ist der Wahrheitstest der RTEST
Makro, das fest verdrahtet ist und nichts anderes als Qfalse
und Qnil
bedeutet, wobei die beiden Konstanten false
und nil
entsprechen. Sie müssten dies ändern, um zu definieren, was "truthig" ist oder nicht.
Es ist zumindest in der offiziellen Ruby-Implementierung unmöglich, dass die wahre und die falsche Logik tief in den C-Teilen (Qtrue und Qfalse) sind. Der Assert-Durchlauf würde jedoch durch Überschreiben von Assert funktionieren. Sie könnten auch etwas wie ruby2ruby verwenden, um alle Werte zu analysieren, aber als true würde sich immer noch nicht wie false verhalten und Aussagen wie ![]
würden immer noch wahr zurückgeben. Beachten Sie auch, dass sich alle anderen Objekte auch in if-Anweisungen und in acin wie "true" verhalten.
Tags und Links ruby