這段代碼
def ok():
ok()
給了我一個 RecursionError,但是這段代碼
def ok():
return ok()
才不是。有人可以解釋為什么把 return 放在那里會使函式結束,因為即使我在第一個函式中回傳,我仍然會再次呼叫相同的函式
uj5u.com熱心網友回復:
當函式不回傳值時,它取決于副作用。這適用于任何功能。
function stairs(n) {
if (n > 0) {
stairs(n - 1)
console.log("*".repeat(n)) // print side effect
}
}
stairs(5) // no returned value
當函式回傳一個值時,可以使用該值,但是呼叫者應該決定 -
function stairs(n) {
if (n > 0) {
return stairs(n - 1) "\n" "*".repeat(n) // returned value
}
else {
return "" // returned value
}
}
console.log(stairs(5)) // print returned value from stairs
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494491.html
標籤:递归
上一篇:將嵌套字典拆分為單鍵路徑串列
