如何将Any类型的数组转换为特定类型

时间:2014-09-17 16:26:51

标签: julia

说我有:

arr = {"a" "b" "r"}
> 1x3 Array{Any,2}:
> "a"  "b"  "r"

我希望它是Array {Symbol,2}类型的说法。

2 个答案:

答案 0 :(得分:4)

还有

julia> convert(Array{Symbol}, arr)
1x3 Array{Symbol,2}:
:a  :b  :r

答案 1 :(得分:1)

这有效:

symarr = reshape(Symbol[arr...],size(arr)...)

另请注意,如果数组中的所有元素都是您想要的类型,您可以使用:

strarr = reshape([arr...],size(arr)...)

如果您对Vector感到满意,可以使用:

symvec = Symbol[arr...]
strvec = [arr...]

这里也是一个有趣的宏:

macro convarr(a, t)
    :(reshape($t[$a...],size($a)...))
end
@convarr arr Symbol

请注意,以上所有内容都会创建原始数组{Any,2}数组

的新副本