Function 如何得到Julia函数的显式路径?

Function 如何得到Julia函数的显式路径?,function,path,julia,Function,Path,Julia,我尝试使用@它,但它会将我带到GitHub上的一个页面,其中包含代码,但是我想知道计算机中的显式路径,即调用函数时使用的文件。例如broadcast(+,A,A)其中A是一个数组,我认为路径是: C:\Users\user\AppData\Local\Julia-0.6.3\share\julia\base\broadcast.jl 但是当我编辑它时,更改一些返回值,然后使用该函数时,没有任何更改,这使我认为它不是所需的文件 这是试图(某种程度上)总结评论中已经写下的内容 首先,正如@dayc

我尝试使用
@它,但它会将我带到GitHub上的一个页面,其中包含代码,但是我想知道计算机中的显式路径,即调用函数时使用的文件。例如
broadcast(+,A,A)
其中
A
是一个数组,我认为路径是:

C:\Users\user\AppData\Local\Julia-0.6.3\share\julia\base\broadcast.jl
但是当我编辑它时,更改一些返回值,然后使用该函数时,没有任何更改,这使我认为它不是所需的文件

这是试图(某种程度上)总结评论中已经写下的内容

首先,正如@daycaster正确提到的,在重新编译系统映像之前,对基本源文件的更改不会生效。所以,你给出的路径实际上是正确的

在REPL中,使用
@将告诉您函数的定义位置(基本文件的名称和行号):

如果(出于某些神秘的原因)您真的想在基本源文件中进行更改,那么您可以使用@Gnimuc提到的。这看起来像这样:

julia> using Revise

julia> Revise.track(Base)

julia> inv(3)
0.3333333333333333

julia> @edit inv(3) # make a change

julia> inv(3)
JUHU!
0.3333333333333333
但是,这与您自己重写该方法没有太大区别。它也不会是永久性的

更新
我刚意识到你仍然在0.6。在这种情况下,文件名不是
startup.jl
,而是
juliarc.jl
。Windows URL错误也不会影响您。

如果您想编辑基本函数,请使用。
@edit broadcast(+,a,a)
将在编辑器中打开正确的文件。@DNF是正确的。如果它没有设置环境变量
JULIA\u EDITOR
。只需在上面的所有注释中添加注释-我不建议您像这样更改Base。最好的方法是在启动Julia后更改特定的方法。如果希望每次启动时都对其进行更改,请将相关代码放在startup.jl文件中。如果修改基本函数,不必重新生成系统映像吗?)非常感谢,这对我很有帮助。
julia> inv(3)
0.3333333333333333

julia> Base.inv(x::Integer) = begin println("JUHU!"); float(one(x)) / float(x) end

julia> inv(3)
JUHU!
0.3333333333333333
julia> using Revise

julia> Revise.track(Base)

julia> inv(3)
0.3333333333333333

julia> @edit inv(3) # make a change

julia> inv(3)
JUHU!
0.3333333333333333