我是Scala的新手。我有以下代码来定义一个常量函数,为其他整数返回 true 1,2,3和 false 。(实际上函数定义a set {1,2,3}的整数):
val a= Node1 _
def Node1(x:Int):Boolean={
if (x==1 || x ==2 || x==3){true}
else{false}
}
有没有办法更简洁地定义这个功能?
答案 0 :(得分:3)
val a: Int => Boolean = Set(1, 2, 3).contains(_)
与
实际相同val a: Int => Boolean = Set(1, 2, 3)
这是因为Set的apply
方法与其contains
方法相同。
答案 1 :(得分:0)
在查找性能上,虽然前面提到的Set.apply
传达了所需的语义,但请注意Set
是一个可以实现ListSet
,HashSet
或{{1}的特征每个都是为特定用途而设计的。
为了查找元素,请考虑TreeSet
(有关详细信息,请参阅Collections Performance Characteristics)优于其他TreeSet
实现。这证明特别适用于大型系列。