簡體   English   中英

在朱莉婭中的一個類型內的數組

[英]Array inside a type in julia

我正在嘗試使用內部數組創建一個類型,但卻無法做到。

這是我的代碼:

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

我收到了這個錯誤

錯誤:UndefVarError:顏色未定義

我究竟做錯了什么?

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

你從來沒有在這里做過color ,所以你不能push! 變成color因為它不存在。 實際上,你不需要。 要定義類型,只需使用其值調用new

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

這使得第一個字段獲得值GrandientPoint(rgb,0)Gradient ,並返回它。


如果你想要一個數組,那么你的類型就是

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM