julia中的递归类型初始化

时间:2017-05-23 20:16:39

标签: types julia

我对我定义的两个结构有问题:

mutable struct QMDDnode{T}
  next::QMDDnode{T}
  ref::Int
  v::Int
  renormFactor::Int
  ident::Bool
  diag::Bool
  block::Bool
  symm::Bool
  c01::Bool
  computeSpecialMatricesFlag::Bool
  e::Array{T} # type QMDDedge
  QMDDnode()=(x=new();x.next=x;x.e=Array{QMDDedge,1}(4);x)
end

mutable struct QMDDedge
  p::QMDDnode{QMDDedge}
  w::Complex
  sentinel::Int
  QMDDedge()=(x=new();x.p=QMDDnode{QMDDedge}();x)
end

我正在尝试理解如何正确初始化它们,编写正确的构造函数。 如果我打电话

b = QMDDedge()

我有一个很好定义的对象“b”,但是数组e []的元素是#undef。

有没有正确的方法来初始化它们?

感谢, 福斯托

1 个答案:

答案 0 :(得分:1)

请参阅文档中的Incomplete Initialization。 (也许LightGraphs.jl就是你要找的)