Ich spiele mit Rakudo Star 2015.09.
Wenn ich versuche, eine Ganzzahl mit einer führenden Null zu stringulieren, gibt der Compiler eine Warnung aus:
%Vor%Ich dachte, vielleicht könnte ich dem Compiler helfen, indem ich einer Variablen den ganzzahligen Wert zuweise, aber das gleiche Ergebnis erhalte:
%Vor%Ich weiß, das ist ein dummes Beispiel, aber ist das Absicht? Wenn ja, warum?
Und wie kann ich diese Art von Warnmeldung unterdrücken?
Gibt es einen Grund, warum Sie Daten mit führenden Nullen haben? Ich stoße auf dieses Problem, wenn ich eine Spalte von Postleitzahlen habe.
Als sie zuerst über Perl 6 nachdachten, war eines der Ziele, einige Konsistenzprobleme zu bereinigen. Wir hatten 0x
und 0b
(denke ich zu dieser Zeit), aber Perl 5 musste immer noch nach dem führenden 0
suchen, um zu erraten, dass es oktal wäre. Siehe Radix Marker in Synopse 2 .
Aber Perl 6 muss sich auch darum kümmern, was Perl 5-Programmierer versuchen werden und was sie erwarten. Die meisten Leute werden erwarten, dass eine führende 0
oktal bedeutet. Aber es bedeutet nicht oktal. Es ist, dass Sie das Literal eingegeben haben, nicht wie Sie es verwenden. Perl 6 enthält viele Warnungen zu Dingen, die Perl 5 Benutzer verwenden würden, wie foreach
:
Um diese Art von Warnung zu unterdrücken, tun Sie nicht, was Sie davor warnen. Die Sprache will das nicht. Wenn Sie eine Zeichenfolge benötigen, beginnen Sie mit einer Zeichenfolge '01234'
. Wenn Sie möchten, dass es oktal ist, beginnen Sie mit 0o
. Beachten Sie jedoch, dass Sie durch das Stringing einer Zahl die dezimale Darstellung zurückbekommen: