我有以下代码:
type CapturablePieces = Pawn | Knight | Bishop | Rook | Queen
我可以定义另一种类型如下:
type Pieces = Pawn | Knight | Bishop | Rook | Queen | King
但是,这里显然有很多代码重复.有没有办法通过纳入CapturablePieces定义来避免这种情况Pieces?
如果你不需要CapturablePieces是可分离的类型,只是某些特定情况的子集,也许它可以作为成员实现?我可以想到两种方式:
a)静态成员中可捕获部分的集合:
type Pieces = Pawn | Knight | Bishop | Rook | Queen | King
static member Capturable = [Pawn; Knight; Bishop; Rook; Queen]
Run Code Online (Sandbox Code Playgroud)
b)布尔成员:
type Pieces = Pawn | Knight | Bishop | Rook | Queen | King
member x.IsCapturable = match x with King -> false | _ -> true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |