我试图在F#中编写一个解释器。我想检查表达式的类型。在F#中使用不同的返回类型进行歧视的联合类型检查
这里是我的表达
type Expr =
| Integer of int
| String of string
| Boolean of bool
这是我使用与
let checkType (e:Expr) =
match e with
| String s -> s
| Integer i -> i
| Boolean b -> b
我想要的方法来确定阉一个表达式来检查类型的方法识别联合是一个字符串,整数或布尔值。
然而,视觉工作室给我的checkType方法的4线以下错误:
This expression was expected to have type string but here has type int
我这么想吗?
当前的错误是由于一个事实,即函数只能返回一个类型的表达式 –