Scala - 部分应用函数。 部分应用函数的用途及其工作原理。
想要将其转换为部分应用函数。
def log(date: Date, message: String) = {
println(date + "----" + message)
}
答案 0 :(得分:3)
当你调用一个函数时,你会说这个函数应用于参数。如果传递了所有预期的参数,则已完全应用它。如果只发送一些参数,则会返回部分应用的函数。这使您可以方便地绑定一些参数,并在以后填写其余参数。
示例强> :log()方法有两个参数:日期和消息。我们想多次调用该方法,日期的值相同但消息的值不同。我们可以通过将该参数部分应用于log()方法来消除将日期传递给每个调用的噪音。为此,我们首先将值绑定到date参数,并通过在其位置放置下划线来保持第二个参数不绑定。结果是我们存储在变量中的部分应用函数。
尝试以下示例
object Demo {
def main(args: Array[String]) {
val date = new Date
val logWithDateBound = log(date, _ : String)
logWithDateBound("message1" )
Thread.sleep(1000)
logWithDateBound("message2" )
Thread.sleep(1000)
logWithDateBound("message3" )
}
def log(date: Date, message: String) = {
println(date + "----" + message)
}
}