scala - 为什么在 Scala 中设置方法不强制执行可比较的类型?

标签 scala

考虑以下示例

val strings = Seq("foo", "bar")
val numbers = Seq(1,2,3)
strings.diff(numbers)

这是有效的代码(并导致一个空列表),但为什么 scala 没有发现我们正在比较不同类型的集合?

似乎有一个类型绑定(bind) B>: Aintersectdiffunion 定义,但是不知何故,它不会导致编译器拒绝我的示例无效。

在 scala 中是否有类型严格/安全的方法来执行设置操作?

最佳答案

因为 Seqcovariant type(+A)

如果你想diffstricted类型,你可以试试:

strings.diff[String](numbers)

关于scala - 为什么在 Scala 中设置方法不强制执行可比较的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33956189/

相关文章:

postgresql - 在 play 框架 2 中使用异常在 postgresql 数据库中持久化对象

scala - 为什么 scalac 不相信某个方法不符合所需的类型签名?

generics - 在scala中混合类型参数和抽象类型

java - 是否有maven依赖:get analog in sbt?

java - 使用 IntelliJ,我如何确定特定函数是来自 Java 还是 Scala

scala - Shapeless: 试图通过类型来限制 HList 元素

scala - 理解 Scala 的下划线和星号魔法

eclipse - 用于 Eclipse 的 ScalaIDE : How can I autocomplete from libraries?

scala - 如何将元组的元组转换为 map

scala - Specs2 - 不应在并发环境中使用单位规范样式