StrDistance 对象用于表示 字符串转换 运算符的返回值。

say (($ = "fold"~~ tr/old/new/).^name;  # OUTPUT: «StrDistance␤»

StrDistance 对象将在转换后字符串化成结果字符串,并将数字化为两个字符串之间的距离。

my $str = "fold";
my $str-dist = ($str ~~ tr/old/new/);
say ~$str-dist;  # OUTPUT: «fnew␤» 
say +$str-dist;  # OUTPUT: «3␤» 

方法§

method before§

这实际上是一个类属性,并以方法形式调用,返回转换前的字符串

say $str-dist.before# OUTPUT: «fold␤» 

method after§

也是一个类属性,返回转换后的字符串

say $str-dist.after;  # OUTPUT: «fnew␤» 

method Bool§

如果 beforeafter 不同,则返回 True

method Numeric§

以数字形式返回距离。

method Int§

multi method Int(StrDistance:D:)

返回转换前后字符串之间的距离。

method Str§

multi method Str(StrDistance:D: --> Str)

返回 after 字符串值。

my $str-dist = ($str ~~ tr/old/new/);
say $str-dist.Str# OUTPUT: «fnew␤» 
say ~$str-dist;    # OUTPUT: «fnew␤» 

类型图§

StrDistance 的类型关系
raku-type-graph StrDistance StrDistance Cool Cool StrDistance->Cool Mu Mu Any Any Any->Mu Cool->Any

展开上方的图表