Julia的工作空间

julia> x=3
3

julia> x
3

例如这个代码x=3,第二次输入x就有3的结果,那么这个x=3存储在哪里,Julia有没有函数能够直接调出来这些变量的值(就像JuliaPro的workspace一样)
试过varinfo(),但是只显示变量不显示值

name                    size summary
–––––––––––––––– ––––––––––– –––––––
Base                         Module
Core                         Module
InteractiveUtils 184.955 KiB Module
Main                         Module
ans                  8 bytes Int64
x                    8 bytes Int64

各位有什么想法嘛

REPL里定义的变量在Main模块里

julia> x=3
3

julia> Main.x
3

julia> Main.eval(:x)
3

julia> names(Main)
6-element Array{Symbol,1}:
 :Base            
 :Core            
 :InteractiveUtils
 :Main            
 :ans             
 :x

这个Main模块有本地文件吗,就跟logs里的那个repl_history一样

好像没有啊,内存加载才有

没有,REPL启动的时候创建,并且默认会导入Base和Core这两个模块。

那有类似matlab的保存变量(save)方法吗

Julia本身有序列化机制,但是不推荐用。另外没有保存整个workspace的方法。

如果只是普通的数组之类的可以用文本方式的DelimitedFiles、CSV,或者直接写入二进制。复杂的数据储存需求建议使用https://github.com/JuliaIO/JLD.jl

JLD2会更好一些,JLD依赖C的HDF5,不如native的友好。另外序列化Julia数据还可以选择BSON