如何在Kotlin中递归地使用copyOnError

如何在Kotlin中递归地使用copyOnError,kotlin,lambda,syntax,Kotlin,Lambda,Syntax,从 fun File.copy递归( 目标:文件, 覆盖:布尔值=false, onError:(文件,IOException)->OnErrorAction={{u0,exception->throw exception} ):布尔值 如何添加OneError代码并处理异常 我有以下代码: val dest=File(文件路径) source.copy递归(dest,true) 我不知道如何添加onError()来处理异常您可以通过代码传递lambda表达式,也可以传递对现有函数的引用 下

fun File.copy递归(
目标:文件,
覆盖:布尔值=false,
onError:(文件,IOException)->OnErrorAction={{u0,exception->throw exception}
):布尔值
如何添加OneError代码并处理异常

我有以下代码:

val dest=File(文件路径)
source.copy递归(dest,true)

我不知道如何添加onError()来处理异常

您可以通过代码传递lambda表达式,也可以传递对现有函数的引用

下面是传递lambda的一种方法:

val dest=File(文件路径)
source.copyrursely(dest,overwrite=true){file,exception->
//对文件或异常执行某些操作
//最后一个表达式必须是OnErrorAction类型
}
请注意,在Kotlin中,如果函数类型参数是最后一个,则可以像下面这样将其传递到括号外。 如果要更明确地显示这是一个错误处理程序,可以通过命名参数并将其放回括号中来实现:

val dest=File(文件路径)
source.copyrecursely(
目标=dest,
覆盖=真,
onError={文件,异常->
//对文件或异常执行某些操作
//最后一个表达式必须是OnErrorAction类型
},
)

我建议学习基本的Kotlin教程,它可能比这里的答案更能帮助您!特别是看看什么是lambda以及如何使用lambda。谢谢!我对你的行动感到困惑。现在我知道它也应该是返回值。