Perl6 Zeichenkettenoperator ~ mag führende Nullen nicht

8

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?

    
Zaid 10.01.2016, 08:29
quelle

1 Antwort

12

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 :

%Vor%

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:

%Vor%     
brian d foy 10.01.2016, 09:24
quelle

Tags und Links