gpt4 book ai didi

arrays - Julia 类型内的数组

转载 作者:行者123 更新时间:2023-12-01 09:17:37 24 4
gpt4 key购买 nike

我正在尝试创建一个内部包含数组的类型,但遇到了麻烦。

这是我的代码:

type Gradient
color::GrandientPoint
Gradient(color=[]) = new(color)
function Gradient(rgb::RGB)
push!(color,GrandientPoint(rgb,0))
end
end

我收到了这个错误

ERROR: UndefVarError: color not defined

我做错了什么?

最佳答案

function Gradient(rgb::RGB)
push!(color,GrandientPoint(rgb,0))
end

你从来没有在这里制作过color,所以你不能push!进入color,因为它不存在。事实上,你不需要。要定义一个类型,你只需调用 new 并为其赋值:

function Gradient(rgb::RGB)
new(GrandientPoint(rgb,0))
end

创建一个 Gradient,其中第一个字段获取值 GrandientPoint(rgb,0),并返回它。


如果你想要一个数组,那么你的类型应该是

type Gradient
color::Vector{GrandientPoint}
end

不仅仅是一个 GraidentPoint。现在您可以使用它的构造函数来制作该向量。类型从它们的类型名称中得到一个合理的构造函数。所以要制作一个Vector{GrandientPoint},你只需要做

Vector{GraidentPoint}()

你可以把东西塞进去。带有构造函数的完整代码:

type Gradient
color::Vector{GrandientPoint}
Gradient(color=[]) = new(Vector{GradientPoint}())
function Gradient(rgb::RGB)
color = Vector{GradientPoint}()
push!(color,GrandientPoint(rgb,0))
new(color)
end
end

关于arrays - Julia 类型内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40187958/

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