[英]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.