我正在尝试使函数正常工作。我有以下内容:

    def method(x: ByteArrayInputStream)
              (y: ByteArrayOutputStream)
              (z: GZIPOutputStream)
              (func: (ByteArrayInputStream, GZIPOutputStream) => Unit) = {

    .....
    .....

    }

现在,当我调用它时,我这样称呼它:
    method(new ByteArrayInputStream("".getBytes("UTF-8")))
          (new ByteArrayOutputStream())
          (new GZIPOutputStream(_))
          (myFunc(_, _))

我的理解是,在第三个参数即GZIPOutputStream中,当我说_时,它将从第二个参数中选择值。但它抱怨说
Type mismatch, expected: GZIPOutputstream, actual: (OutputStream) => GZIPOutputStream

有什么提示吗?

最佳答案

我不确定如何执行此操作...但是这是一种模拟您所需内容的解决方案

def add(j: Int)(i: Option[Int] = None): Int = j + i.getOrElse(j)
add(5)()

add(5)()返回10并使用j值

10-08 14:44