AM
Size: a a a
AM
P
УМ

АО
УМ
RS
VG
function unzip(vec::Vector{T}) where T <: Union{Tuple, NamedTuple}
map(x->getfield.(vec, x), fieldnames(T))
end
ntup = (a=[1,2,3,4], b=[1.,2.,3.,4.])
v = zip(ntup...) |> collect
tup = unzip(v)
tup == Tuple(ntup)АО
collect(zip(v...))
АО
VG
StructArrays в том случае, если надо только AOS и SOA конвертировать друг в другаRS
function unzip(vec::Vector{T}) where T <: Union{Tuple, NamedTuple}
map(x->getfield.(vec, x), fieldnames(T))
end
ntup = (a=[1,2,3,4], b=[1.,2.,3.,4.])
v = zip(ntup...) |> collect
tup = unzip(v)
tup == Tuple(ntup)foldl(v; init = [[],[]]) do dict, v
for i in eachindex(v)
push!(dict[i], v[i])
end
dict
end
VG
Foo, которая определена в foo.jl
2) есть несколько форматов файлов для её сохранения и чтения, которые определены в txt.jl, binary.jl, otherformat.jl и т.д.txt.jl, binary.jl или other.jl, но и эти методы в свою очередь должны знать о структуре Foo.include("foo.jl") - на данный момент объявлены функции read и save, в них вызываются функции, которые ещё не были определеныinclude("txt.jl")
include("binary.jl")
include("otherformat.jl") - на данный момент все функции определены, но все равно как-то не по себе...АО
АО
АО
VG
function save(f::Foo)
...
savetxt(f)
...
end
АО
VG
АО
f1 и f2 - к моменту исполнения они все уже будут прочитаны и идентифицированы Julia.