在变量绑定中使用Discriminated Union类型

jth*_*h41 0 f# types discriminated-union

我已经创建了一个自定义类型,并希望创建2个变量,以证明我的类型按预期工作.

type number = A of int | B of float;;

let a = 0;;
let b = 0.0;; 
Run Code Online (Sandbox Code Playgroud)

我该如何更改变量声明以强制它们输入number?目前a为int,b为float.

N_A*_*N_A 5

要强制它们成为类型number,您需要做的就是将它们分配给type的值number.你给出的例子:

let a = 0
let b = 0.0
Run Code Online (Sandbox Code Playgroud)

将它们分别分配给类型int和值float.要获取类型的值,请从这些值number构造number对象,如下所示:

let a = A(0)
let b = B(0.0)
Run Code Online (Sandbox Code Playgroud)