【发布时间】:2018-03-09 23:38:03
【问题描述】:
我想在 Perl6 中限制我的一些函数的返回类型。 我知道,如何推断函数的正确返回类型,在 Perl6 中返回标量或数组,但我不知道,如果我使用特定类型的哈希作为返回值,我该怎么做?
示例:Array 方法可以在test_arr() 中看到,Hash 方法可以在test_hash() 中看到。所以我想指定test_hash()的返回值,返回一个A类的hash。
#!/usr/bin/env perl6
use v6.c;
use fatal;
class A {
has Str $.member;
}
sub test_arr() returns Array[A] {
my A @ret;
@ret.push(A.new(member=>'aaa'));
return @ret;
}
sub test_hash() { #TODO: add `returns FANCY_TYPE`
my A %ret;
%ret.append("elem",A.new(member=>'aaa'));
%ret.append("b",A.new(member=>'d'));
return %ret;
}
sub MAIN() returns UInt:D {
say test_arr().perl;
say test_hash().perl;
return 0;
}
【问题讨论】:
标签: raku