我有一个参数类型。例如:
> Array([1 2;3 4])
Run Code Online (Sandbox Code Playgroud)
它的类型是
> typeof(Array([1 2;3 4]))
Array{Int64,2}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法获取第一个类型参数eltype:
> eltype(typeof(Array([1 2;3 4])))
Int64
Run Code Online (Sandbox Code Playgroud)
如何访问第二个和可能的其他类型参数?
如果您专门谈论(Abstract)Array类型,则可以使用以下方式检索维度ndims:
julia> ndims(Array{Int64, 2})
2
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您想编写一个自定义函数来从参数类型中提取给定参数,则可以使用如下构建函数:
julia> second_param(::Type{Array{T, N}}) where {T, N} = N
second_param (generic function with 1 method)
julia> second_param(Array{Int64, 2})
2
Run Code Online (Sandbox Code Playgroud)
(我在这里使用是Array为了示例,但可以使用相同类型的构造从任何其他参数类型中提取参数)