相关疑难解决方法(0)

是否可以强制记录尊重某些不变量?

假设我想创建一个表示可接受的最小/最大边界的记录类型:

type Bounds = { Min: float; Max: float }
Run Code Online (Sandbox Code Playgroud)

有没有办法强制执行Min <Max?编写validateBounds函数很容易,我只是想知道是否有更好的方法来执行此操作.

编辑:我意识到,对于这个具体的例子,我可能会放弃暴露两个属性并重新排序参数,所以让我们说我们试图做

type Person = { Name: string }
Run Code Online (Sandbox Code Playgroud)

和名称需要至少有一个字符.

f# record refinement-type

24
推荐指数
2
解决办法
1539
查看次数

标签 统计

f# ×1

record ×1

refinement-type ×1