gpt4 book ai didi

julia - 为什么 Julia 函数名称(不带参数)会被默默忽略?

转载 作者:行者123 更新时间:2023-12-02 20:06:22 32 4
gpt4 key购买 nike

我有一个定义函数的脚本,后来打算调用该函数,但忘记添加括号,如下所示:

function myfunc()
println("inside myfunc")
end
myfunc # This line is silently ignored. The function isn't invoked and there's no error message.

过了一会儿,我确实发现我漏掉了括号,但由于 Julia 没有给我错误,我想知道该行实际上在做什么?我假设它必须使用 myfunc 语句执行某些操作,但我对 Julia 的了解不够深,无法理解正在发生的情况。

我尝试了 --depwarn=yes 但没有看到 julia 命令行开关来提高警告级别或详细程度。如果存在请告诉我。

对于后台上下文,出现此问题的原因是我正在尝试将 Bash 脚本转换为 Julia,并且有许多位置定义并调用无参数函数,而在 Bash 中则不需要函数名称后面需要括号才能调用它。

该脚本正在从命令行 (julia stub.jl) 运行,我在 macOS 上使用 Julia 1.0.3。

最佳答案

它不会默默地忽略该函数。在交互式 session 中调用 myfunc 将向您展示会发生什么:调用将函数对象返回到控制台,从而调用 Functionshow 方法>,显示当前在您的工作区中为该函数定义了多少个方法。

julia> function myfunc()
println("inside myfunc")
end
myfunc (generic function with 1 method)

julia> myfunc
myfunc (generic function with 1 method)

由于您在脚本中调用此函数,因此永远不会调用 show,因此您看不到任何结果。但它不会出错,因为语法是有效的。感谢 DNF 对脚本中的内容提供的有用评论。

关于julia - 为什么 Julia 函数名称(不带参数)会被默默忽略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54587345/

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