在朱莉娅,许多Base和更近的相关功能也都是用纯Julia编写的,代码很容易实现。可以浏览存储库或本地下载的文件,并查看函数的编写/实现方式。但是我认为已经有一些内置的方法可以帮助你,所以你可以在REPL或Jupyter Notebook中编写类似的东西:
@code functioninquestion()
得到类似的东西:
functioninquestion(input::Type)
some calculations
return
end
没有分页通过代码。
我只是不记得方法或电话。我已经阅读了手册的反思/反思部分,但我似乎无法在那里使用任何东西。我已经尝试过methods
,methodswith
,code_lowered
,expand
,似乎无法让他们给出我想要的东西 -
答案 0 :(得分:7)
目前尚不支持,但未来可能会支持。
答案 1 :(得分:7)
虽然这可能不是OP所寻求的,但julia> @less 1 + 2
读取底层代码非常方便(所以我经常使用它)。例如,
+(x::Int, y::Int) = box(Int,add_int(unbox(Int,x),unbox(Int,y)))
给出
julia> @which 1 + 2
+(x::Int64, y::Int64) at int.jl:8
,对应于
给出的行Order:
db:
Status: Enum('Unpaid, Paid, Cancelled','Unpaid')
答案 2 :(得分:4)
@edit functioninquestion()
会将您的编辑器打开到给定方法的位置。
可能不会很难获取@edit
使用的相同信息并使用它来打开文件并跳转到方法定义,然后直接在REPL(或Jupyter)中显示它。
编辑:当我回答时,其他人提到@less
,这似乎完全符合您的要求。
答案 3 :(得分:0)
现在有另一种工具https://github.com/timholy/CodeTracking.jl。它是Revise.jl的一部分(在同时使用Revise时效果更好)。与@ edit / @ less不同,它应该可以在Jupyter内部并使用REPL中定义的功能。