Julia如何制作大型数据结构而不使其变得不规则?
例如
struct Struct1
item1::Vector{Struct2}
end
struct Struct2
item2::Vector{Struct3}
end
struct Struct3
item3::Vector{Struct4}
end
struct Struct4
item4::Vector{Struct5}
end
struct Struct5
item5::Float64
end
要使用item5
,我需要将其全部初始化,并说我称之为LongChain = Struct1()
因为没有继承来使用item5
会要求
LongChain.item1[i].item2[j].item3[k].item4[l].item5
该链可以任意变长...如果存在继承,它将只是
LongChain.item5[i]
Julia
如何避免这些长链?
答案 0 :(得分:1)
您的问题的答案是您的设计似乎是面向对象的,因此设计了一种面向对象的语言来表达这种类型的设计。但是您的设计可能还有其他解决方案。 无论如何,定义
getitem5(longchain::Struct1, i, j, k, l) = longchain.item1[i].item2[j].item3[k].item4[l].item5
应该解决问题。考虑到在这种情况下您缺少其他对象(j,k和l)的索引信息,我看不出在Python中如何将其减少到LongChain.item5[i]
?
人们问您要实现什么(SO问题的先决条件)-仅提及“您的其他问题”实际上并没有帮助。