问题
我从一个文件中读取了一个字符串数组。
julia> file = open("word-pairs.txt");
julia> lines = readlines(file);
但是 Julia 不知道它们是字符串。
julia> typeof(lines)
Array{Any,1}
问题
我能以某种方式告诉朱莉娅吗?
是否可以将类型信息插入到计算结果中?
我从一个文件中读取了一个字符串数组。
julia> file = open("word-pairs.txt");
julia> lines = readlines(file);
但是 Julia 不知道它们是字符串。
julia> typeof(lines)
Array{Any,1}
我能以某种方式告诉朱莉娅吗?
是否可以将类型信息插入到计算结果中?
了解这是一个问题的上下文会很有帮助,因为可能有更好的方式来表达您的需求 - 或者某处可能存在一个微妙的错误。
我能以某种方式告诉朱莉娅吗?
不,因为该readlines
函数显式创建了一个Any
数组 ( a = {}
):https ://github.com/JuliaLang/julia/blob/master/base/io.jl#L230
是否可以将类型信息插入到计算结果中?
您可以转换数组:
r = convert(Array{ASCIIString,1}, w)
readstrings
或者,根据上面的链接创建自己的函数,但使用ASCIIString[]
集合数组而不是{}
.
从 0.3.4 开始:
julia> typeof(lines)
Array{Union(ASCIIString,UTF8String),1}
我只是想警告:
convert(Array{ASCIIString,1}, lines)
我猜这可能会失败(对于非ASCII),在这种情况下不需要做任何事情,这应该可以工作:
convert(Array{UTF8String,1}, lines)
以赛亚关于readlines
. 更一般地说,通常你可以说
n = length(A)::Int
当泛型类型推断失败但您可以保证特定情况下的类型。