使用用户定义的类型

时间:2010-07-01 19:07:59

标签: f# user-defined-types

我正在定义一种代表我游戏板的类型:

type Position = (int * Piece) list 

但是当我创建这样的列表时:

let board1 = [(1,Piece.BLACK);(2,Piece.WHITE);(3,Piece.BLACK);(4,Piece.WHITE);
              ...]

我创建了一个(int * Piece)列表列表,而不是一个Position。

我该怎么改变?哪种方法正确?

例如:

val board1 : (int * Piece) list = 
[(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); 

1 个答案:

答案 0 :(得分:1)

如果您希望它使用您的Position类型,则需要告诉它,否则它不知道您想要的(您可以轻松创建仅仅(int * Piece) list的5种类型,它不知道选择哪一个。

您可以通过将: Position添加到decleration来强制执行此类型:

type Piece = BLACK | WHITE
type Position = (int * Piece) list
let board1 : Position = [(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); ]