Kotlin 阶乘中的Tailrec
这是密码Kotlin 阶乘中的Tailrec,kotlin,recursion,Kotlin,Recursion,这是密码 fun main(args: Array<String>) { val number = 6 val factorial = fact(number) println("Factorial of $number = $factorial") } tailrec fun fact(n: Int, temp: Int = 1): Int { return if (n == 1){ temp } els
fun main(args: Array<String>) {
val number = 6
val factorial = fact(number)
println("Factorial of $number = $factorial")
}
tailrec fun fact(n: Int, temp: Int = 1): Int {
return if (n == 1){
temp
} else {
fact(n-1, temp*n)
}
}
fun main(args:Array){
val编号=6
val阶乘=事实(数字)
println(“$number的阶乘=$Factorial”)
}
tailrec有趣的事实(n:Int,temp:Int=1):Int{
如果(n==1)返回{
临时雇员
}否则{
事实(n-1,临时*n)
}
}
我看过多个教程,但仍然不了解tailrec的具体功能。基本上,
tailrec
会使编译器在编译代码时给出错误,如果您的代码的结构不允许编译器在编译时进行尾部递归优化。使用尾部递归,函数使用更少的内存,并且不受堆栈的限制。好的,这是有意义的。我假设您必须将tailrec放在那里才能使用tail递归。有错误。基本上,tailrec
会使编译器在编译代码时给出一个错误,如果您的代码的结构不允许编译器进行尾部递归优化。使用尾部递归,函数使用更少的内存,并且不受堆栈的限制。好的,这是有意义的。我假设您必须将tailrec放在那里才能使用tail递归。窃听器。