Julia 中是否禁止定义嵌套函数?

Sha*_*yan 2 julia

我可以说到目前为止我从未见过任何包维护者定义嵌套函数:

function foo()
    function bar()
        # do
    end
    # do
end
Run Code Online (Sandbox Code Playgroud)

Julia 中是否禁止这样做,或者是否会导致性能下降?

Bog*_*ski 6

扩展 DanGetz 的回应:

  1. 这是允许的。
  2. 如果使用正确,不会影响性能。
  3. 如果使用不当(特别是从外部作用域捕获变量),它可能会影响性能或代码正确性,因此您需要小心。
  4. 在函数中定义匿名函数更为常见。

如果您想了解有关潜在性能影响的更多信息,请参阅此处