gpt4 book ai didi

struct - 在 Julia 中实现相互嵌套结构的问题

转载 作者:行者123 更新时间:2023-12-02 08:03:04 26 4
gpt4 key购买 nike

我正在尝试定义两个结构,Node 和 Edge。节点包含边数组,而边包含目标节点和到达该节点的概率。由于问题其余部分的结构,我无法避免使用 Edge 对象。

struct Node
edges::Vector{Edge}
end

struct Edge
next::Node
probability::Float64
end

每当我尝试运行整个脚本时,我都会收到“UndefVarError:Edge is not defined”。

如果我尝试只运行边缘部分,我会得到“UndefVarError:Node is not defined”。

有没有办法(像在 C 中一样)预先声明结构,或者告诉 julia 一起处理这两个结构?

最佳答案

如何使用抽象类型:

abstract type AbstractEdge end;

struct Node{T <: AbstractEdge}
edges::Vector{T}
end

struct Edge <: AbstractEdge
next::Node{Edge}
probability::Float64
end

Node() = Node{Edge}(Edge[])

如果您进行任何图形计算,请考虑使用 LightGraphs.jl,它具有可能适合您需求的加权图形。

关于struct - 在 Julia 中实现相互嵌套结构的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54656359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com