Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 获取抽象类型的所有实现_Julia - Fatal编程技术网

Julia 获取抽象类型的所有实现

Julia 获取抽象类型的所有实现,julia,Julia,是否有任何方法可以获取某些抽象类型的所有实现?比如: implementations(AbstractString) == [String, DirectIndexString, ...] 那真的很方便。目前,当我需要此功能时,我只是手动注册所有实现。我想这就是你的意思 julia> subtypes(AbstractString) 6-element Array{Union{DataType, UnionAll},1}: Base.SubstitutionString Base.T

是否有任何方法可以获取某些抽象类型的所有实现?比如:

implementations(AbstractString) == [String, DirectIndexString, ...]

那真的很方便。目前,当我需要此功能时,我只是手动注册所有实现。

我想这就是你的意思

julia> subtypes(AbstractString)
6-element Array{Union{DataType, UnionAll},1}:
 Base.SubstitutionString
 Base.Test.GenericString
 DirectIndexString      
 RevString              
 String                 
 SubString  
同样,与此相反的是
超类型
,但是,与此相反,如果您想沿着树向上移动,则必须分步进行。同样,
子类型
也只给您一个级别的子类型,您仍然可以递归地使用它沿着类型树向下移动

如果您的意思是只查找属于该类型的子类型的具体实现,那么可以递归地遍历所有子类型,直到到达底部,然后还可以进一步使用
isleaftype
来测试它们是否是该类型之上的具体类型

注意:参数化类型可能会返回false和
isleaftype
,即使它下面没有子类型。e、 g.
isleaftype(子字符串)
返回false,但
isleaftype(子字符串{String})
返回true