发送函数以折叠Scala

发送函数以折叠Scala,scala,Scala,如何发送累加函数以折叠Scala,下面的示例将说明(Int,Int,Int)不接受参数 我的问题是: 为什么会出现这个错误 在下面的代码中,idomatic如何实现我想要的功能 def a(xs: List[(Int,Int)]): Int = { def logic(acc: (Int,Int, Int), post: (Int,Int)): (Int,Int,Int) = { // do some logic (1, 2, 3) } val to = xs foldL

如何发送累加函数以折叠Scala,下面的示例将说明
(Int,Int,Int)不接受参数

我的问题是:

  • 为什么会出现这个错误
  • 在下面的代码中,idomatic如何实现我想要的功能

    def a(xs: List[(Int,Int)]): Int = {
    
    def logic(acc: (Int,Int, Int), post: (Int,Int)): (Int,Int,Int) = {
        // do some logic
    
        (1, 2, 3)
    }
    
    val to = xs foldLeft((0,0,0))(logic _)
    
    to._3
    }
    

我不明白您代码的目的,但您描述的问题可以通过以下方式解决:

val to = xs.foldLeft((0,0,0))(logic)

我不了解您代码的目标,但您描述的问题可以通过以下方式解决:

val to = xs.foldLeft((0,0,0))(logic)
试试这个

xs.foldLeft((0,0,0), logic)
试试这个

xs.foldLeft((0,0,0), logic)
问题在于:

xs foldLeft((0,0,0))(logic _)
除非是运算符,否则永远不要使用无点符号。这样就行了

xs.foldLeft((0,0,0))(logic _)
如果没有上下文,我相信这已经足够惯用了。

问题在于:

xs foldLeft((0,0,0))(logic _)
除非是运算符,否则永远不要使用无点符号。这样就行了

xs.foldLeft((0,0,0))(logic _)

如果没有上下文,我相信这已经足够惯用了。

foldLeft
是一个curry函数,所以它需要一个
-点击
xs.foldLeft
,它就会工作。

foldLeft
是一个curry函数,所以它需要一个
-点击
xs.foldLeft
,它就会工作。

无需投票就投反对票解释对任何人都没有好处,没有解释的否决不会对任何人有利。