可以解释下这行代码是什么意思吗?
为什么可以这样写?
为什么要写成这样?
fun log(tag: String)
= fun(target: OutputStream)
= fun(message: Any?)
= target.write("[$tag] $message\n".toByteArray())
可以解释下这行代码是什么意思吗?
为什么可以这样写?
为什么要写成这样?
fun log(tag: String)
= fun(target: OutputStream)
= fun(message: Any?)
= target.write("[$tag] $message\n".toByteArray())
1 回答557 阅读✓ 已解决
3 回答2.2k 阅读
2 回答557 阅读
466 阅读
既然你给这个问题打了
currying
这个标签,我很奇怪你为什么不知道这就是一般柯里化的写法。log
函数接收一个tag
参数,然后返回一个接收target
参数的匿名函数,这个匿名函数又会返回一个接收message
的匿名函数,最后这个函数使用前面接收到的三个参数来完成write
操作。这个函数在调用的时候需要连着调,像这样: