我有一个包含单个项目的集合,在本例中是一个字符串:
b = Set(["A"])
Run Code Online (Sandbox Code Playgroud)
我想把那个单品拿出来.这样做的最佳方法是什么?我能想到的唯一方法是使用循环:
single_item = ""
for item in b
single_item = item
end
Run Code Online (Sandbox Code Playgroud)
这得到了我需要的东西
julia> single_item
"A"
Run Code Online (Sandbox Code Playgroud)
但我觉得必须有一个更简单的方法.
怎么样
julia> collect(b)[1]
"A"
Run Code Online (Sandbox Code Playgroud)
编辑
正如传说中的丹·盖茨建议的那样,考虑一下
julia> collect(take(b,1))[1]
"A"
Run Code Online (Sandbox Code Playgroud)
如果记忆是一个问题
我建议 first
julia> b = Set(["A"])
Set(ASCIIString["A"])
julia> first(b)
"A"
Run Code Online (Sandbox Code Playgroud)
我们可以对此进行分析,查看分配数量.(因为内存分配很慢).我会忽略实际的时间,因为这是一次运行.显示的结果是每次调用的第二次运行.与b声明const.
julia> @time first(b)
0.000003 seconds (4 allocations: 160 bytes)
"A"
julia> @time collect(b)[1]
0.000005 seconds (5 allocations: 240 bytes)
"A"
julia> @time first(next(b,start(b)))
0.000007 seconds (5 allocations: 192 bytes)
"A"
Run Code Online (Sandbox Code Playgroud)