0
我玩HDF5DotNet(請參閱http://hdf5.net/)。還有裏面有很多這種類型的構造函數的類H5Array
:使用F#的4維以上的數組無法初始化對象
new 'Type []
new 'Type [,]
new 'Type [,,]
new 'Type [,,]
new 'Type [,,,]
new 'Type [,,,,]
new 'Type [,,,,,]
...
我寫
let data = Array2D.create 256 512 4.
let test = H5Array data
即使對於一個二維數組我得到一個錯誤說:
internal error: F# supports a maxiumum .NET array dimension of 4
我兩個問題是:
- 如何使用它適用於2D數據嗎?
- 如何使它適用於4維以上的數據?
謝謝你的回答。這個'let data = Array.CreateInstance(float.GetType(),[| 1; 2; 3; 4; 5 |])'給出了同樣的錯誤。我應該在某處報告這種行爲還是你會這樣做?順便說一句:有什麼解決辦法可以使它工作嗎?我現在唯一能想到的是創建另一個C#項目幷包裝構造函數。 –
它是F#編譯器/語言的限制(語言規範說F#只支持4級)。這是我們第一次回想起「在野外」遇到這樣一個更高級別的真實案例。用C#類型封裝構造函數,公開一些調用這些構造函數的靜態方法,並防止F#需要查看高級數組,可能確實可以解決這個問題,如果不是,請告訴我。 – Brian
感謝您的解釋。但是當對象具有更高級別的構造函數時,至少它應該始終適用於4級以下的隊伍。 –