pr1*_*001 10 methods scala function
假设我想按照以下方式制作一个小包装:
def wrapper(f: (Any) => Any): Any = {
println("Executing now")
val res = f
println("Execution finished")
res
}
wrapper {
println("2")
}
Run Code Online (Sandbox Code Playgroud)
这有意义吗?我的包装方法显然是错误的,但我认为我想做的精神是可能的.我这么认为是对的吗?如果是这样,解决方案是什么?谢谢!
Ben*_*ngs 25
如果希望wrapper方法在自身内部执行包装方法,则应将参数更改为"按名称".这使用了语法=> ResultType.
def wrapper(f: => Any): Any = {
println("Executing now")
val res = f
println("Execution finished")
res
}
Run Code Online (Sandbox Code Playgroud)
你现在可以这样做,
wrapper {
println("2")
}
Run Code Online (Sandbox Code Playgroud)
它会打印出来
Executing now
2
Execution finished
Run Code Online (Sandbox Code Playgroud)
如果您希望能够使用包装函数的返回类型,则可以使方法具有通用性:
def wrapper[T](f: => T): T = {
println("Executing now")
val res: T = f
println("Execution finished")
res
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5084 次 |
| 最近记录: |