真的有这样的事情吗?a <= expr <= b
的等价物,或者在SQL语言expr BETWEEN a AND b
中,expr
只计算一次?或者这只是getting silly的要求
发布于 2009-11-07 06:14:50
在Perl中有多种方法可以做到这一点。
if( $a < $x and $x < $b ){ ... }
... if $a < $x and $x < $b;
use 5.10.1;
if( $x ~~ [$a..$b] ){ ... }
given( $x ){
when( [$a..$b] ){ ... }
}
use 5.11.0; # development branch
given( $x ){
... when [$a..$b];
}
发布于 2009-11-07 06:03:09
您可以使用Range operator
+ smart macthing
if($expr ~~ [$a..$b])
发布于 2009-11-08 15:25:23
在Perl6中,比较运算符是可链接的。
http://perlcabal.org/syn/S03.html#Chained_comparisons
Perl6支持比较运算符的自然扩展,允许多个操作数:
if 1 < $a < 100 { say "Good, you picked a number *between* 1 and 100." }
if 3 < $roll <= 6 { print "High roll" }
if 1 <= $roll1 == $roll2 <= 6 { print "Doubles!" }
在Perl5中,它们不是这样的。
https://stackoverflow.com/questions/1690654
复制相似问题