gpt4 book ai didi

Scala 相当于 Python 的 "in"集合运算符?

转载 作者:行者123 更新时间:2023-12-04 17:51:42 26 4
gpt4 key购买 nike

在 Scala 中,可以使用“Contains”检查项目是否是 Set 的成员:

object Main extends App {
val the_set = Set(1, 2, 3, 4)
if( the_set contains 3 ) println("The set contains 3!")
}

但是,我想做一个类似的比较,但首先是项目,最后是系列(我知道这是一个次要的风格点)。我在 Python 方面有一些背景,所以我希望有一些类似于 Python 的 in 运算符的东西:
the_set = set([1, 2, 3, 4])
if 3 in the_set: print "The set contains 3!"

有没有办法在 Scala 中做到这一点?如果您好奇,我之所以要这样做是为了编写一个简洁的 if 语句,将一个值与我构建的长 Set 进行比较。同时,我希望项目在前,以便代码更易于阅读和理解。

谢谢!

最佳答案

以下是如何执行此操作的一个示例:

scala> implicit class InOperation[T](v: T) extends AnyVal { def in(s: Set[T]) = { s contains v } }
defined class InOperation

scala> val x = Set(1,2,3)
x: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

scala> 2 in x
res0: Boolean = true

它使用 implicit class添加 in方法(需要 Set[T] )到任意类型 T并检查对象是否在集合中。

关于Scala 相当于 Python 的 "in"集合运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com