Julia 中 `function` 和 `let` 块之间的区别?

问题描述 投票:0回答:1

在 Julia 中,这两种创建函数的方法之间有什么区别吗:

function g1(x)
   # compute something, store it in `result`
   return result
end

g2(x) = let
   # compute something, store it in `result`
   result
end
function julia let
1个回答
0
投票

请注意,

let
变体也会创建一个函数。因此你也可以写:

g2(x) = begin
   # compute something, store it in `result`
   result
end

获得相同的效果。

原因是这里

=
之后的所有内容都在
g2
函数范围内,所以无论你执行
begin
-
end
还是
let
-
end
,表达式都在这个范围内。
let
变体创建了一个额外的硬范围,但它不会改变任何内容,因为函数范围中没有任何内容不在示例中的
let
范围内。

如果它在全局范围内,

let
-
end
会与
begin
-
end
有所不同,但在你的情况下,你在函数范围内引入它。

© www.soinside.com 2019 - 2024. All rights reserved.