2
有什麼方法可以獲得某種抽象類型的所有實現?像:獲取抽象類型的所有實現
implementations(AbstractString) == [String, DirectIndexString, ...]
會很方便。目前我只需要手動註冊所有實現時,我需要此功能。
有什麼方法可以獲得某種抽象類型的所有實現?像:獲取抽象類型的所有實現
implementations(AbstractString) == [String, DirectIndexString, ...]
會很方便。目前我只需要手動註冊所有實現時,我需要此功能。
我覺得這是你的意思
julia> subtypes(AbstractString)
6-element Array{Union{DataType, UnionAll},1}:
Base.SubstitutionString
Base.Test.GenericString
DirectIndexString
RevString
String
SubString
同樣,這反過來supertype
,不過,相比之下,如果你想前往了你就必須這樣做,在步驟樹。再次,subtypes
也只是給你一個級別的子類型,你仍然可以遞歸地使用它來遍歷類型樹。
如果你的意思,反而是隻找到具體實現,都是這種類型的,你可以通過所有亞型遞歸,直到你到達底部,然後你可以進一步還可以使用isleaftype
來測試它們是否的亞型頂部的混凝土類型。
注:參數化類型可能返回false與isleaftype
即使它下設沒有亞型。例如isleaftype(SubString)
返回false,但isleaftype(Substring{String})
返回true。