class IntStr is Allomorph is Int { }

IntStr 是一个双值类型,同时是 Allomorph(因此是 Str)和 Int 的子类。

有关更多详细信息,请参阅 Allomorph

my $int-str = <42>;
say $int-str.^name;     # OUTPUT: «IntStr␤» 
 
my Int $int = $int-str# OK! 
my Str $str = $int-str# OK! 
 
# ∈ operator cares about object identity 
say 42  <42  55  1>;   # OUTPUT: «False␤» 

方法§

方法 new§

method new(Int $iStr $s)

构造函数需要 IntStr 值,直接构造时,这些值可以是任何所需的值

my $f = IntStr.new(42"forty two");
say +$f# OUTPUT: «42␤» 
say ~$f# OUTPUT: «"forty two"␤»

方法 Int§

method Int

返回 IntStr 的整数值。

方法 Numeric§

multi method Numeric(IntStr:D: --> Int:D)
multi method Numeric(IntStr:U: --> Int:D)

:D 变体返回调用者的数字部分。:U 变体发出有关在数字上下文中使用未初始化值的警告,然后返回值 0

方法 Real§

multi method Real(IntStr:D: --> Int:D)
multi method Real(IntStr:U: --> Int:D)

:D 变体返回调用者的数字部分。:U 变体发出有关在数字上下文中使用未初始化值的警告,然后返回值 0

运算符§

中缀 ===§

multi infix:<===>(IntStr:D $aIntStr:D $b)

IntStr 值同一性运算符。如果 $a$bInt相同,并且它们的 Str 值也 相同,则返回 True。否则返回 False

类型图§

IntStr 的类型关系
raku-type-graph IntStr IntStr Allomorph Allomorph IntStr->Allomorph Int Int IntStr->Int Mu Mu Any Any Any->Mu Cool Cool Cool->Any Stringy Stringy Str Str Str->Cool Str->Stringy Allomorph->Str Numeric Numeric Real Real Real->Numeric Int->Cool Int->Real

展开上面的图表