Julia对getline()的问题
为了在执行阶段获取值,我使用了below getline()函数,但当仅获取一个值时,它将以数组格式存储,这限制了我在将来的计算中使用该值。但是,对于多个输入值,它可以正常工作Julia对getline()的问题,julia,Julia,为了在执行阶段获取值,我使用了below getline()函数,但当仅获取一个值时,它将以数组格式存储,这限制了我在将来的计算中使用该值。但是,对于多个输入值,它可以正常工作 getline(q=STDIN)= map(parse, split(readline(q))) q =getline(STDIN) 当我输入值8时,它像数组格式一样存储为[8]。有人能帮我将值存储为Int64格式吗 注意:我正在一个.jl文件中编写Julia代码,并在REPL by include(fil
getline(q=STDIN)= map(parse, split(readline(q)))
q =getline(STDIN)
当我输入值8时,它像数组格式一样存储为[8]。有人能帮我将值存储为Int64格式吗注意:我正在一个.jl文件中编写Julia代码,并在REPL by include(file.jl)方法中使用它。这样做的原因是,无论您给出1个参数还是>1个参数,都知道q始终是一个数组。有关原因的更全面解释,请参见此处: 现在,如果你愿意,你可以在这里使用底线
q = [8]
# If q is length one then q is the first element of q
(length(q) == 1) && (q = q[1])
更确切地说,你甚至可以:
(length(q) == 1) && (q = Int64(q[1]))
或
编辑以反映评论:
这使得split()
具有最简单的行为,即它总是返回一个数组。拆分字符串时,您事先不知道将得到多少字段,因此最简单的方法是为N个字段返回一个N值数组,无论N是什么
如果返回了不同的类型,则调用例如
length(split(s))
来计算字段数可能会返回意外结果(如值/字符串本身的长度)。感谢@Jeff Bezanson的解释它实际上与类型稳定性无关;只是split
总是返回一个数组。拆分字符串时,您事先不知道将获得多少字段。最简单的行为是为N个字段返回N个值的数组,不管N是什么。当N==1时返回一个不同的类型对每个人来说都会更加混乱;e、 g.类似于length(split(s))
的用于计算字段数的代码将被打断。
@assert typeof(q) == Int64