Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia对getline()的问题_Julia - Fatal编程技术网

Julia对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

为了在执行阶段获取值,我使用了below getline()函数,但当仅获取一个值时,它将以数组格式存储,这限制了我在将来的计算中使用该值。但是,对于多个输入值,它可以正常工作

  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