加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:20:43 所属栏目:安全 来源:网络整理
导读:在 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!")} 但是,我想做一个类似的比较,但是首先是项目,最后是设置(我知道一个小的风格点
在 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中有一些东西:

the_set = set([1,4])
if 3 in the_set: print "The set contains 3!"

在Scala有什么办法吗?如果你很好奇,我想要这样做的原因是编写一个简洁的if语句,将一个值与我构建的long 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,3)
x: scala.collection.immutable.Set[Int] = Set(1,3)

scala> 2 in x
res0: Boolean = true

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读