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