我正在使用生鏽0.8。在關閉中調用堆內函數參數
爲什麼我能做到這一點:
fn add(num: ~int) -> ~fn(int) -> int { |x|
*num + x
}
但不是這樣的:
fn outer(num: ~int) -> ~fn(int) -> int { |x|
*inner(num) + x
}
fn inner(num: ~int) -> ~int {
num
}
第二個失敗,「錯誤:無法遷出的被捕獲外層變量的堆關閉」。什麼使得調用一個特殊的功能?
是否擔心內部函數可能會對靜態分析無法捕獲的盒裝函數執行某些操作?
不是一個正確的答案,所以我會添加它作爲評論︰https://github.com/mozilla/rust/wiki/Doc-under-construction-FAQ –