我已經定義了一個Container
類。在@values屬性中,我需要存儲一個數組或二維數組,而這些數組中的元素可以是Int32或Float64。如果我初始化這樣的:使類型Array(T)的類成員屬性接受T的二維數組
class Container
def initialize(value)
@values = values
end
end
我得到一個錯誤:@values : Type, is inferred from assignments to it across the whole program.
如果我定義它是這樣的:
class Container
def initialize(value : Array)
@values = values
end
end
我得到:can't use Array(T) as the type of instance variable @values of Container(T), use a more specific type
我怎樣才能讓這個類更靈活,所以我可以這樣做:
Container.new([1,2,3])
Container.new([1.0, 3.0, 4.0])
Container.new([[1, 2], [4,3,2],[1]])
Container.new([[1.0, 4.5], [2.2, 0.0]])
什麼是用例的集裝箱?你可以用它做什麼? – asterite
目標是能夠使用它作爲numpy的ndarray,如果它是方形的,可以對它應用一些矩陣運算,如果形狀允許它們在ndarrays之間運行,並用每個元素的類型和形狀定義它的陣列。問題在於元素的類型。正如我上面寫的,我無法找到如何使它適用於一維和二維數組,以及32Int和64Float –