perl6 – 定义可以通过方法语法调用的子例程

前端之家收集整理的这篇文章主要介绍了perl6 – 定义可以通过方法语法调用的子例程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sqrt可以通过函数语法调用
> sqrt 16
4

它也可以通过方法语法调用

> 16.sqrt
4

有没有办法通过方法语法使用户定义的子程序可以调用

例如,让我们定义sq:

> sub sq(Int $n) { $n*$n }
sub sq (Int $n) { #`(Sub|64042864) ... }
> sq 4
16

有没有办法让它可以作为方法调用?即

> 4.sq

解决方法

Is there a way to make user defined subroutines invokable via method Syntax?

是的,只需使用.&语法,如:

625.&sqrt.say
# 25

调用者作为第一个参数传递:

sub sq { $^a² }; say 4.&sq
4.&sq.say
# 16

唯一的问题是,如果要将方法链分解为多行,则必须使用unspace:

4.&sq\
 .&sq.say;

猜你在找的Perl相关文章