Scala-部分应用函数
Scala-部分应用的函数。 部分应用函数的用途及其工作原理 希望将其转换为部分应用的函数Scala-部分应用函数,scala,Scala,Scala-部分应用的函数。 部分应用函数的用途及其工作原理 希望将其转换为部分应用的函数 def log(date: Date, message: String) = { println(date + "----" + message) } 当你调用一个函数时,你被说成是将函数应用于参数。如果您传递了所有预期的参数,那么您已经完全应用了它。如果只发送几个参数,则返回一个部分应用的函数。这使您可以方便地绑定一些参数,并将其余参数留待以后填写 示例 :log()方法接受两个参
def log(date: Date, message: String) = {
println(date + "----" + message)
}
当你调用一个函数时,你被说成是将函数应用于参数。如果您传递了所有预期的参数,那么您已经完全应用了它。如果只发送几个参数,则返回一个部分应用的函数。这使您可以方便地绑定一些参数,并将其余参数留待以后填写 示例 :log()方法接受两个参数:日期和消息。我们希望多次调用该方法,对date使用相同的值,但对message使用不同的值。通过将该参数部分应用于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)
}
}
当你调用一个函数时,你被说成是将函数应用于参数。如果您传递了所有预期的参数,那么您已经完全应用了它。如果只发送几个参数,则返回一个部分应用的函数。这使您可以方便地绑定一些参数,并将其余参数留待以后填写 示例 :log()方法接受两个参数:日期和消息。我们希望多次调用该方法,对date使用相同的值,但对message使用不同的值。通过将该参数部分应用于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)
}
}