Collections 如何在Julia中创建集合?

Collections 如何在Julia中创建集合?,collections,julia,Collections,Julia,这似乎是一个非常基本的问题,但找不到答案。如何在Julia中创建集合?例如,我想打开一个文本文件并解析每一行以创建一个(iterable或其他)集合。显然,我不知道预先有多少元素 我可以像这样迭代这些行 I = each_line(open(fileName,"r")) state = start(I) while !done(I, state) (i, state) = next(I, state) println(i) end 但我不知道如何将每个I放入数组或其他集合中。我试过

这似乎是一个非常基本的问题,但找不到答案。如何在Julia中创建集合?例如,我想打开一个文本文件并解析每一行以创建一个(iterable或其他)集合。显然,我不知道预先有多少元素

我可以像这样迭代这些行

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") ) )
但是我犯了错误

无方法映射(函数,每条线)

您可以这样做:

lines = String[]
for line in each_line(open(fileName))
  push!(lines, line)
end

然后,
包含行列表。您需要第一行中的
字符串
,以使阵列可扩展。

文档中主要介绍了标准集合和支持的操作

具体而言,本节涵盖1d
数组
类型(向量)支持的所有操作,包括
推送
弹出以及插入、调整大小等


Omar的答案是正确的,我只需要添加一个小限定:
String[]
创建一个1d数组
String
s。例如,可以使用相同的构造函数语法来创建
Int[]
Float[]
,甚至
任何[]
向量。后一种类型可以保存任何类型的对象。

根据您的Julia版本,您还可以编写
collect(eachline(open(“LICENSE.md”))
[eachline(open(“LICENSE.md”)…]
。我认为这些在0.1.x版本中不起作用,但在较新的0.2开发版本中会起作用(目前推荐使用0.2版本)。

可能值得指出的是,对于特殊情况
Any[]
,即
{}
,有一条捷径可走。很好,我自己编写了这个函数,很高兴看到它现在在图书馆里。(collect比arrayof更好,我用的是arrayof。)