这似乎是一个非常基本的问题,但无法找到答案。如何在Julia中创建一个集合?例如,我想打开一个文本文件并解析每一行以创建(可迭代或其他)集合。显然,我事先并不知道有多少元素。
我可以像这样迭代
I = each_line(open(fileName,"r"))
state = start(I)
while !done(I, state)
(i, state) = next(I, state)
println(i)
end
但我不知道如何将每个i放入数组或其他集合中。我试过了
map( i -> println(i), each_line(open(fileName,"r") ) )
但得到了错误
没有方法图(Function,EachLine)
答案 0 :(得分:4)
你可以这样做:
lines = String[]
for line in each_line(open(fileName))
push!(lines, line)
end
然后lines
包含行列表。您需要第一行中的String
才能使数组可扩展。
答案 1 :(得分:4)
标准集合和支持的操作主要包含在standard library文档中。
具体来说,Deques部分涵盖了1d Array
类型(向量)支持的所有操作,包括push!
和pop!
以及插入,调整大小,等
Omar的回答是正确的,我只会添加一个小资格:String[]
创建一个{1}的1d数组。例如,可以使用相同的构造函数语法来创建String
,Int[]
或甚至Float[]
向量。后一种类型可以容纳任何类型的对象。
答案 2 :(得分:4)
根据您的Julia版本,您也可以撰写collect(eachline(open("LICENSE.md")))
或[eachline(open("LICENSE.md"))...]
。我认为这些在0.1.x版本中不起作用,但会在更新的0.2开发版本中使用(此时推荐使用 - 0.2即将推出)。