代码之家  ›  专栏  ›  技术社区  ›  Kamil Kloch

Scala推断最小上界

  •  0
  • Kamil Kloch  · 技术社区  · 6 年前

    斯卡拉2.12。以下代码

    val mapBuilder = Map.newBuilder[String, String]
    val setBuilder = Set.newBuilder[String]
    
    List(Option("")).foreach {
      case Some(_) => mapBuilder += "" -> ""
      case None => setBuilder += ""
    }
    

    不编译-编译器无法推断两个生成器中的最小上限 U 在里面 foreach[U](f: A => U) ):

    type arguments [String,Iterable[java.io.Serializable] with String => Any with scala.collection.generic.Subtractable[String,Equals]] do not conform to trait Subtractable's type parameter bounds [A,+Repr <: scala.collection.generic.Subtractable[A,Repr]]
    

    foreach 具有 Any

    List(Option("")).foreach[Any] {
    ...
    

    这是预期的行为吗?

    0 回复  |  直到 6 年前
    推荐文章