代码之家  ›  专栏  ›  技术社区  ›  Kevin Meredith

在Iterable之前?

  •  0
  • Kevin Meredith  · 技术社区  · 11 年前

    我如何准备,即。 cons ,到 Iterable ?

    scala> val xs: Iterable[Int] = Seq(1)
    xs: Iterable[Int] = List(1)
    
    scala> xs :: 5
    <console>:15: error: value :: is not a member of Int
           xs :: 5
              ^
    

    我看着 docs ,但没有弄清楚。

    2 回复  |  直到 11 年前
        1
  •  6
  •   Michael Zajac    11 年前

    :: 特定于 List 它 是 一 列表 事实上

    不存在在 Iterable ,并非所有 可迭代的 我们将保证订单( Set 例如没有)。你可能想要 Seq 相反,这将使用 +: 准备。

        2
  •  3
  •   Rich    11 年前

    Iterable 没有 prepend 方法,但可以使用“++”连接两个可迭代项:

    scala> val xs: Iterable[Int] = Seq(1)
    xs: Iterable[Int] = List(1)
    
    scala> List(5) ++ xs
    res0: List[Int] = List(5, 1)
    

    Seq 确实具有预处理方法, +: ,您可以转换为seq:

    scala> 5 +: xs.toSeq
    res1: Seq[Int] = List(5, 1)
    
    推荐文章