我正在尝试使函数正常工作。我有以下内容:
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值