2

问题

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

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

但是 Julia 不知道它们是字符串。

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

问题

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

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

4

3 回答 3

1

了解这是一个问题的上下文会很有帮助,因为可能有更好的方式来表达您的需求 - 或者某处可能存在一个微妙的错误。

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

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

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

您可以转换数组:

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

readstrings或者,根据上面的链接创建自己的函数,但使用ASCIIString[]集合数组而不是{}.

于 2014-01-10T21:32:31.867 回答
0

从 0.3.4 开始:

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

我只是想警告:

convert(Array{ASCIIString,1}, lines)

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

convert(Array{UTF8String,1}, lines)
于 2015-01-19T13:44:45.970 回答
0

以赛亚关于readlines. 更一般地说,通常你可以说

n = length(A)::Int

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

于 2014-01-11T11:50:20.797 回答