在scala中,pattern match有guard pattern:
val ch = 23
val sign = ch match {
case _: Int if 10 < ch => 65
case '+' => 1
case '-' => -1
case _ => 0
}
Run Code Online (Sandbox Code Playgroud)
Perl 6版本是这样的吗?
my $ch = 23;
given $ch {
when Int and * > 10 { say 65}
when '+' { say 1 }
when '-' { say -1 }
default { say 0 }
}
Run Code Online (Sandbox Code Playgroud)
这是正确的吗?
更新:正如jjmerelo建议的那样,我发布我的结果如下,签名版本也很有趣. …