如何在Julia REPL会话中列出特定类型的变量?
在Julia REPL中列出所有Dict类型变量的方法
你可以通过以下方式快速筛选出当前作用域中属于Dict类型(及其子类型)的变量:
方法一:使用filter结合names与isa
在REPL中执行以下代码:
filter(var_name -> eval(var_name) isa Dict, names(Main, all=true))
names(Main, all=true):获取Main模块(REPL默认作用域)下的所有变量名,包括以下划线开头的隐藏变量;若不需要隐藏变量,去掉all=true即可。eval(var_name):根据变量名获取对应的变量值。isa Dict:判断变量值是否属于Dict类型(包括带具体参数的子类型,比如Dict{String, Int})。
示例演示
先定义几个测试变量:
num = 42 str_dict = Dict("name" => "Julia") int_dict = Dict{Int, Float64}(1 => 3.14) arr = [1, 2, 3]
执行筛选代码后,会返回结果:
2-element Vector{Symbol}: :str_dict :int_dict
方法二:使用typeof与子类型判断
也可以用typeof结合子类型运算符<:实现相同效果:
filter(var_name -> typeof(eval(var_name)) <: Dict, names(Main))
这种写法和isa的逻辑等价,都是判断变量类型是否属于Dict的范畴。
内容的提问来源于stack exchange,提问作者dmbiro
相关产品推荐
相关产品推荐

