Frage

generasacodicetagpre.

Die ersten Beispiele funktioniert, aber der zweite nicht.Ich nehme an, es liegt daran, dass im zweiten Beispiel die variablen Werte Saiten sind.Wenn meine Vermutung richtig ist, wie könnte ich die String-Variablen auf ganzzahlige Variablen ändern? generasacodicetagpre.

War es hilfreich?

Lösung

You can always manually cast to Int

( $m.Int div $n.Int ).say;

Actually I would have hoped that prefix:<+> would work as in

( +$m div +$n ).say;

But it just "Num"ifies and the sig requires "Int", I am not sure if it should be this way or not.

UPDATE: +$m now works.

Andere Tipps

I kinda think that the second form should work too (coerce to Int first, and then do integer division). I'll get some feedback from the other Perl 6 developers, and fix it if they agree. (Update: turns out that infix: is explicitly not coercive, but rather is specced to return a value of the same type as the arguments. Which won't work for generally for Str).

As Pat pointed out, +$m should also work, that's a long standing limitation in Rakudo.

In general, coercion to a type is done with $variable.Typename, and I believe this works for all numeric types in Rakudo today.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top