F# 使用用户定义的类型
我正在定义一个类型来表示我的游戏的一个棋盘:F# 使用用户定义的类型,f#,user-defined-types,F#,User Defined Types,我正在定义一个类型来表示我的游戏的一个棋盘: type Position = (int * Piece) list 但当我创建这样的列表时: let board1 = [(1,Piece.BLACK);(2,Piece.WHITE);(3,Piece.BLACK);(4,Piece.WHITE); ...] 我创建了一个(int*工件)列表,而不是一个位置 我怎样才能改变这个?哪种方法正确 例如: val board1 : (int * Piece) list
type Position = (int * Piece) list
但当我创建这样的列表时:
let board1 = [(1,Piece.BLACK);(2,Piece.WHITE);(3,Piece.BLACK);(4,Piece.WHITE);
...]
我创建了一个(int*工件)列表,而不是一个位置
我怎样才能改变这个?哪种方法正确
例如:
val board1 : (int * Piece) list =
[(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE);
如果您希望它使用您的
位置
类型,您需要告诉它,否则它不知道您想要什么(您可以轻松创建5种类型,它们都是(int*Piece)列表
s,它不知道选择哪种类型
您可以通过如下方式将:Position
添加到declaration来强制输入:
type Piece = BLACK | WHITE
type Position = (int * Piece) list
let board1 : Position = [(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); ]
如果您希望它使用您的
位置
类型,您需要告诉它,否则它不知道您想要什么(您可以轻松创建5种类型,它们都是(int*Piece)列表
s,它不知道选择哪种类型
您可以通过如下方式将:Position
添加到declaration来强制输入:
type Piece = BLACK | WHITE
type Position = (int * Piece) list
let board1 : Position = [(1, BLACK); (2, WHITE); (3, BLACK); (4, WHITE); ]
看看我的答案,看看我的答案。