[ Perl 6 ] 定义类型的子集
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ Perl 6 ] 定义类型的子集相关的知识,希望对你有一定的参考价值。
[ Perl 6 ] 定义类型的子集
There is more than one way to do it.
- 有些时候,我们希望定义的变量或传递的参数的类型应当是有限制的基本类型。为了实现这一需求,Perl 6提供了
subset
关键字,它用于定义一个类型的子集
subset Non-neg-int of Int where { $_ >= 0 }
# factorial as example
sub factorial(Non-neg-int $n) {
return 1 if $n == 0;
return $n * factorial $n-1;
}
> fact(1.5)
Type check failed in binding to parameter ‘$n‘; expected Int but got Rat (1.5)
in sub fact at <unknown file> line 1
in block <unit> at <unknown file> line 1
> fact(-1)
Constraint type check failed in binding to parameter ‘$n‘; expected Non-neg-int but got Int (-1)
in sub fact at <unknown file> line 1
in block <unit> at <unknown file> line 1
以上是关于[ Perl 6 ] 定义类型的子集的主要内容,如果未能解决你的问题,请参考以下文章