在JAVA中有像
Python:
if a in (b, c, d):
...
JavaScript的:
if ([b, c, d].contains(a)) {
...
}
这种给定值是否等于一组其他值中的任意一个
一旦 if 的条件被评估完毕,这组值就应该被忘记——因此,所有内容都应包含在 if 的括号中
执行成本应低廉
要测试的值(此处为a)不应重复,因为它可能是一个有副作用的表达式,而不是变量
因为上面的第二点,一旦 if 的条件评估完成,就应该忘记这组值,这CONSTANT.contains()不是一个解决方案,因为常量的性质意味着它 1.在到达 if 语句之前很久就被计算出来,2.在条件评估之后仍然存在。
目前标记为与此问题重复的问题从标题来看可能看起来是等同的,但实际上并非如此:另一个问题涉及连续的 if/elif/else 子句,这些子句的条件重复出现,仅涉及单个 if 语句。
如果要解决上面的
类似这样的操作在 Java 8 中是可行的
if(Arrays.asList("a", "b", "c").contains("a")) {
//Code
}