class ComplexStr is Allomorph is Complex {}

ComplexStr 是一种双值类型,是 Allomorph 的子类,因此是 StrComplex 的子类。

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

my $complex-str = <42+0i>;
say $complex-str.^name;             # OUTPUT: «ComplexStr␤» 
 
my Complex $complex = $complex-str# OK! 
my Str     $str     = $complex-str# OK! 
 
# ∈ operator cares about object identity 
say 42+0i  <42+0i  55  1>;         # OUTPUT: «False␤» 

方法§

方法 new§

method new(Complex $iStr $s)

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

my $f = ComplexStr.new(42+0i, "forty two (but complicated)");
say +$f# OUTPUT: «42+0i␤» 
say ~$f# OUTPUT: «"forty two (but complicated)"␤»

方法 Capture§

method Capture(ComplexStr:D: --> Capture:D)

等效于 Mu.Capture.

方法 Complex§

method Complex

返回 ComplexStrComplex 值。

方法 Numeric§

multi method Numeric(ComplexStr:D: --> Complex:D)
multi method Numeric(ComplexStr:U: --> Complex:D)

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

方法 Real§

multi method Real(ComplexStr:D: --> Num:D)
multi method Real(ComplexStr:U: --> Num:D)

将调用者的数字部分强制转换为 Num。如果虚部不 近似 为零,则强制转换将 失败,并出现 X::Numeric::Real 错误。

:D 变体返回强制转换的结果。:U 变体发出关于在数字上下文中使用未初始化值的警告,然后返回 0e0 值。

运算符§

中缀 ===§

multi infix:<===>(ComplexStr:D $aComplexStr:D $b)

ComplexStr 值标识运算符。如果 $a$bComplex相同,并且它们的 Str 值也 相同,则返回 True。否则返回 False

类型图§

ComplexStr 的类型关系
raku-type-graph ComplexStr ComplexStr Allomorph Allomorph ComplexStr->Allomorph Complex Complex ComplexStr->Complex Mu Mu Any Any Any->Mu Cool Cool Cool->Any Stringy Stringy Str Str Str->Cool Str->Stringy Allomorph->Str Numeric Numeric Complex->Cool Complex->Numeric

展开上面的图表