用于组合1D和2D阵列的F#类型

时间:2011-05-29 01:37:25

标签: f#

我是否可以使用一个成员的类是浮点数组或像

那样的浮点数组
type testArr(data: float[],...) =
  member x.data = data
  member x.others = ...
  new( data: float[][],...) = ??? 

我试着定义 type Value = Value1D of float[] | Value2D of float[][],然后定义type testArr(data: Value,... ),但我需要为type Value重写大量代码以重复array类型的方法,例如.Item等。或者,如何我是否定义了从type Value继承的'a[],但仅将元素类型'a限制为floatfloat[]

1 个答案:

答案 0 :(得分:1)

我不完全确定你为什么需要这个,但你可以用私有构造函数定义一个TestArr类,并添加两个静态方法来创建两个类型(float[]和{{1} })你想要允许:

float[][]

总是使用数组数组,但是只有一个元素用于1D场景,正如Gabe在评论中所建议的那样听起来像是一个更好,更简单的替代方案。

相关问题