【问题标题】:How to call a function on every element in a list in Scala?如何在Scala列表中的每个元素上调用函数?
【发布时间】:2020-03-18 11:23:25
【问题描述】:

我正在尝试创建一个以 List 作为参数的递归函数。在这个函数中有另一个列表,其中包含我想要传递给递归函数的数据。我为列表中的每个元素调用该函数。

我尝试了以下方法:

list2.foreach(foo(_::list1))

我收到以下错误:

knight1.scala:78: error: type mismatch;
 found   : List[Any]
 required: Main.$anon.CW8a.Pos
    (which expands to)  (Int, Int)
    list2.foreach(foo(_::list1))
                       ^

list1 和 list2 都是 List[(Int, Int)] 类型。

【问题讨论】:

  • foo 的类型是什么?
  • list2.foreach( pair => foo( pair :: list1 ) ) 工作吗?
  • 这确实有效,非常感谢!

标签: scala list recursion


【解决方案1】:

在 Scala 中,您需要更加明确。您误用了下划线运算符。

list2.foreach(elt => foo(elt::list1))

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多