gpt4 book ai didi

f# - 如何避免重复声明相似类型?

转载 作者:行者123 更新时间:2023-12-04 14:23:03 24 4
gpt4 key购买 nike

我有以下代码:
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]

b) bool 成员:
type Pieces = Pawn | Knight | Bishop | Rook | Queen | King
member x.IsCapturable = match x with King -> false | _ -> true

关于f# - 如何避免重复声明相似类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49627927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com