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

Scala Set:vs.

发布时间:2020-12-16 18:24:53 所属栏目:安全 来源:网络整理
导读:套装之间有什么不同? scala val set = Set[String]("a","b")set: scala.collection.immutable.Set[String] = Set(a,b)scala set + "c"res2: scala.collection.immutable.Set[String] = Set(a,b,c)scala set ++ "c"res3: scala.collection.immutable.Set[Any
套装之间有什么不同?

scala> val set = Set[String]("a","b")
set: scala.collection.immutable.Set[String] = Set(a,b)

scala> set + "c"
res2: scala.collection.immutable.Set[String] = Set(a,b,c)

scala> set ++ "c"
res3: scala.collection.immutable.Set[Any] = Set(a,c)

第一次返回Set [String],而第二次返回Set [Any].
看起来更普遍,但附加价值到底是什么?

解决方法

如果你看一下 API doc的Set方法,你会发现它需要一个GenTraversableOnce

scala> val c:GenTraversableOnce[Any] = "c"
c: scala.collection.GenTraversableOnce[Any] = c

这意味着在这种情况下:

scala> set ++ "c"
res3: scala.collection.immutable.Set[Any] = Set(a,c)

“c”是GenTraversableOnce [Any],然后该方法添加该集合的所有元素.

(我怀疑和许多其他的回答者一样,我只是在Scala控制台上做了一些调查,然后仔细检查是否通过隐式转换进行检查.是的,它似乎是.)

(编辑:李大同)

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

    推荐文章
      热点阅读