Arrays julia中类型内的数组
我正在尝试创建一个包含数组的类型,但却很难做到这一点 这是我的代码:Arrays julia中类型内的数组,arrays,types,julia,Arrays,Types,Julia,我正在尝试创建一个包含数组的类型,但却很难做到这一点 这是我的代码: type Gradient color::GrandientPoint Gradient(color=[]) = new(color) function Gradient(rgb::RGB) push!(color,GrandientPoint(rgb,0)) end end 我犯了这个错误 错误:未定义颜色错误:未定义颜色 我做错了什么 function Gradient(r
type Gradient
color::GrandientPoint
Gradient(color=[]) = new(color)
function Gradient(rgb::RGB)
push!(color,GrandientPoint(rgb,0))
end
end
我犯了这个错误
错误:未定义颜色错误:未定义颜色
我做错了什么
function Gradient(rgb::RGB)
push!(color,GrandientPoint(rgb,0))
end
你从来没有在这里制作过颜色
,所以你不能推代码>转换为颜色
,因为它不存在。事实上,你不需要。要定义类型,只需调用new
,并为其指定值:
function Gradient(rgb::RGB)
new(GrandientPoint(rgb,0))
end
这将生成一个渐变,其中第一个字段获取值GrandientPoint(rgb,0)
,并返回它
如果需要数组,则类型为
type Gradient
color::Vector{GrandientPoint}
end
不仅仅是一个点。现在你可以使用它的构造器来构造这个向量。类型从其类型名称中有一个合理的构造函数。所以要生成一个向量{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
但这构成了一个数组?如何向其中添加元素?请注意,@exsnake可能需要Vector{GradientPoint}
,如果我理解正确的话。(因此,带有color[]
)的new(color)
)啊,这使得标题更有意义。是的,他/她的原始问题中没有向量。我对答案进行了编辑,以防他/她需要数组。我没有得到任何东西。正在做什么?new(color)
?new(color)
创建一个新的渐变对象,其中第一个字段包含变量color
。不过,它不必是同一个名字。如果我们做了color2=Vector{GradientPoint}();推(颜色,GrandientPoint(rgb,0))
,然后新建(color2)
将在处生成一个新的Graid凹痕。颜色将是我们制作的color2
。