在scala中定义常量函数(映射)的任何简洁方法

时间:2015-06-01 06:39:31

标签: scala

我是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}
}

有没有办法更简洁地定义这个功能?

2 个答案:

答案 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是一个可以实现ListSetHashSet或{{1}的特征每个都是为特定用途而设计的。

为了查找元素,请考虑TreeSet(有关详细信息,请参阅Collections Performance Characteristics)优于其他TreeSet实现。这证明特别适用于大型系列。