gpt4 book ai didi

function - Julia 函数声明风格

转载 作者:行者123 更新时间:2023-12-04 17:30:41 26 4
gpt4 key购买 nike

在 Julia 中,我知道定义命名多行函数的三种方法:

1.

function f(x, y)
...
end

2.
f = function(x, y)
...
end

3.
f(x, y) = begin
...
end

它们似乎都产生了相同的结果。
有什么区别吗?应该使用哪一个,为什么?

最佳答案

1 和 3 在功能上是相同的,但 1 在风格上是优选的。 “简短的函数声明”f(x,y) = …通常用于(并鼓励)单行定义——也就是说,没有 begin堵塞。

2不一样。它正在创建一个匿名函数,然后将其分配给 f .请注意,与 1 和 3 创建的绑定(bind)不同,您实际上可以重新分配 f完全不同的东西。这意味着 Julia 不能假设 f将始终调用该函数,这意味着它不能进行任何正常的优化。现在,如果您使用 const f = function(x, y) … ,然后 f是一个常量绑定(bind),它的行为应该与其他声明类似。但请注意 f仍然只是一个匿名函数的绑定(bind)——函数本身并不知道它的名字是什么!所以它会打印为 #1 (generic function with 1 method)而不是 f (generic function with 1 method) .

https://docs.julialang.org/en/stable/manual/functions/更多细节。

关于function - Julia 函数声明风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com