gpt4 book ai didi

julia - include 到底是做什么的?

转载 作者:行者123 更新时间:2023-12-01 09:49:22 28 4
gpt4 key购买 nike

据我从文档和网络上的几篇文章中了解到,声明

include("myfile.jl")

只需将 myfile.jl 中的代码粘贴到调用文件(或控制台)上,用 include 语句替换该行。

如果我错了,请纠正我。我刚刚开始与 Julia 。但是,我也看到了 Julia 的一位创作者的以下评论:
"include works in the dynamically-current module, not the lexically-current one.
It is really a load-time function, not a run-time one."

动态当前和词法当前有什么区别?

最佳答案

这不是函数调用,因为 if myfile.jl就是 a = 2你做 include("myfile.jl") ,然后您可以检查 a = 2 的 REPL .在函数中 a会在不同的作用域中定义,然后在函数结束后删除。所以这是行为上的明显差异。这是一个演示差异的示例 REPL session :

julia> a
ERROR: UndefVarError: a not defined

julia> function incl(file)
a = "not 2"
include(file)
@show Main.a
@show a
end
incl (generic function with 1 method)

julia> incl("myfile.jl")
Main.a = 2
a = "not 2"
"not 2"

julia> a
2

这就是他们所说的“动态当前”与“词汇当前”的含义。从词法上讲,一个函数在它自己的范围内运行,它只能从函数的实际代码中访问——没有其他方法可以访问或更改局部变量。 include即使从函数内部调用,也始终在当前全局范围内运行。 Julia 的 eval函数的行为类似——您无法使用 eval 查看或更改局部变量只有全局的。

关于julia - include 到底是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288626/

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