如何在Julia中使用少於輸入值的輸入構建構造函數?我有一個Int64數組數組,其中每個數字代表24個布爾值。最好的情況是我可以發送數組並獲取每個組件的數組的複合類型。這是我試過的代碼。在Julia中構建非默認構造函數
type Status
Valve1::Array{Bool}
Valve2::Array{Bool}
Valve3::Array{Bool}
Valve4::Array{Bool}
Valve5::Array{Bool}
Valve6::Array{Bool}
Valve7::Array{Bool}
Valve8::Array{Bool}
# Constructor for Status type
function Status(vals::Array{Int64})
l = int64(length(vals))
Valve1 = Array(Bool,l)
Valve2 = Array(Bool,l)
Valve3 = Array(Bool,l)
Valve4 = Array(Bool,l)
Valve5 = Array(Bool,l)
Valve6 = Array(Bool,l)
Valve7 = Array(Bool,l)
Valve8 = Array(Bool,l)
# Parse Inputs
for i=1:l
# Byte 1
Valve1[i] = vals[i] & 2^(1-1) > 0
Valve2[i] = vals[i] & 2^(2-1) > 0
Valve3[i] = vals[i] & 2^(3-1) > 0
Valve4[i] = vals[i] & 2^(4-1) > 0
Valve5[i] = vals[i] & 2^(5-1) > 0
Valve6[i] = vals[i] & 2^(6-1) > 0
Valve7[i] = vals[i] & 2^(7-1) > 0
Valve8[i] = vals[i] & 2^(8-1) > 0
end # End of conversion
new(Valve1,Valve2,Valve3,Valve4,Valve5,Valve6,Valve7,Valve8)
end # End of constructor
end # End of type
這會導致no method convert(Type{Bool},Array{Bool,1})
錯誤。我試圖用statuses = Status(StatusW)
實例化它,其中StatusW是一個Int64數組值。
有用的參考資料:Types和Julia documentation
將定義更改爲'Valve1 :: Array {Bool,1}'會導致類似的錯誤。 'no method convert(Type {Array {Bool,1}},Bool)' – Jeremy