我試圖瞭解爲什麼會發生這種情況,即使DataArrays存在限制。假設你想在映射的Int64s一個DataArray中:爲什麼在DataArrays上操作時地圖會丟棄類型信息?
da = DataArray([1,2,3,4])
println(typeof(da))
println(typeof(map(a -> a^2, da))) # Returns an int for this input
println(typeof(map(a -> int(a^2), da))) # Cast the piecewise result to int
println(typeof(int(map(a -> a^2, da)))) # Cast the output DataArray{Any,1} to int
導致
DataArray{Int64,1}
DataArray{Any,1}
DataArray{Any,1}
Array{Int64,1}
對於數組,a = [1,2,3,4]
,如預期map(a -> a^2, da)
返回Int64s數組。在這裏導致類型信息丟失的map和/或DataArrays是什麼?
當您使用的類型沒有將DataArray {Any,1}轉換爲DataArray {ThatType,1}類似Dates.DateTime的構造函數時,是否有解決方案來保存類型信息?
編輯:轉換工作正常,使DataArray {Any,1}一個DataArray {ThatType,1}(以及至少爲DateTime)。
優秀的抓給出了答案,我忘了地圖!這是我應該使用的。 – ARM