routine Int

Documentation for routine Int assembled from the following types:

class Numeric

From Numeric

(Numeric) method Int

method Int(Numeric:D: --> Int:D)

If this Numeric is equivalent to a Real, return the equivalent of calling truncate on that Real to get an Int. Fail with X::Numeric::Real otherwise.

class StrDistance

From StrDistance

(StrDistance) method Int

Defined as:

multi method Int(StrDistance:D:)

Returns the distance between the string before and after the transformation.

class IntStr

From IntStr

(IntStr) method Int

method Int

Returns the integer value of the IntStr.

enum Bool

From Bool

(Bool) routine Int

multi method Int(Bool:D --> Int:D)

Returns the value part of the enum pair.

say False.Int;                                # OUTPUT: «0␤» 
say True.Int;                                 # OUTPUT: «1␤»

role Rational

From Rational

(Rational) method Int

Defined as:

method Int(Rational:D: --> Int:D)

Coerces the invocant to Int by truncating non-whole portion of the represented number, if any. If the denominator is zero, will fail with X::Numeric::DivideByZero.

role Enumeration

From Enumeration

(Enumeration) method Int

Defined as:

multi method Int(::?CLASS:D:)

Takes a value of an enum and returns it after coercion to Int:

enum Numbers ( cool => '42'almost-pi => '3.14'sqrt-n-one => 'i' );
say cool.Int;           # OUTPUT: «42␤» 
say almost-pi.Int;      # OUTPUT: «3␤» 
try say sqrt-n-one.Int;
say $!.message if $!;   # OUTPUT: «Cannot convert 0+1i to Int: imaginary part not zero␤»

Note that if the value cannot be coerced to Int, an exception will be thrown.

class Map

From Map

(Map) method Int

Defined as:

method Int(Map:D: --> Int:D)

Returns the number of pairs stored in the Map (same as .elems).

my $m = Map.new('a' => 2'b' => 17);
say $m.Int;                                       # OUTPUT: «2␤»

class Str

From Str

(Str) method Int

Defined as:

method Int(Str:D: --> Int:D)

Coerces the string to Int, using the same rules as Str.Numeric.

class Match

From Match

(Match) method Int

Defined as:

method Int(Match:D: --> Int:D)

Tries to convert stringified result of the matched text into Int.

say ('12345' ~~ /234/).Int;       # OUTPUT: «234␤» 
say ('12345' ~~ /234/).Int.^name# OUTPUT: «Int␤» 
# the next line produces a warning about using Nil (result of a no match) in numeric context 
say ('one-two' ~~ /234/).Int;     # OUTPUT: «0␤» # because Nil.Int returns 0

class List

From List

(List) method Int

Defined as:

method Int(List:D: --> Int:D)

Returns the number of elements in the list (same as .elems).

say (1,2,3,4,5).Int# OUTPUT: «5␤»

class IO::Path

From IO::Path

(IO::Path) method Int

Defined as:

method Int(IO::Path:D: --> Int:D)

Coerces .basename to Int. Fails with X::Str::Numeric if base name is not numerical.