将类型信息断言到Julia中的计算结果

时间:2014-01-10 19:57:28

标签: julia

问题

我从文件中读取了一个字符串数组。

julia> file = open("word-pairs.txt");
julia> lines = readlines(file);

但朱莉娅不知道他们是串。

julia> typeof(lines)
Array{Any,1}

问题

我能以某种方式告诉朱莉娅吗?

是否可以在计算结果中插入类型信息?

3 个答案:

答案 0 :(得分:1)

了解这是一个问题的背景会很有帮助,因为可能有更好的方式来表达你需要的东西 - 或者某处可能存在一个微妙的错误。

  

我能以某种方式告诉朱莉娅吗?

不,因为readlines函数显式创建了Any数组(a = {}):https://github.com/JuliaLang/julia/blob/master/base/io.jl#L230

  

是否可以在计算结果中插入类型信息?

您可以转换数组:

r = convert(Array{ASCIIString,1}, w)

或者,根据上面的链接创建自己的readstrings函数,但使用ASCIIString[]代替{}收集数组。

答案 1 :(得分:0)

以赛亚对readlines的极限是正确的。更一般地说,通常你可以说

n = length(A)::Int

当泛型类型推断失败但您可以保证特定情况下的类型。

答案 2 :(得分:0)

截至0.3.4:

julia> typeof(lines)
Array{Union(ASCIIString,UTF8String),1}

我只是想警告:

convert(Array{ASCIIString,1}, lines)

可能会失败(对于非ASCII),我想,在这种情况下,不需要做任何事情,这应该有效:

convert(Array{UTF8String,1}, lines)
相关问题