Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 如何在歧视工会案例的实际容器上进行模式匹配?_F# - Fatal编程技术网

F# 如何在歧视工会案例的实际容器上进行模式匹配?

F# 如何在歧视工会案例的实际容器上进行模式匹配?,f#,F#,出于好奇,我如何在歧视工会案例的实际容器上进行模式匹配 具体来说,我如何知道某个值是否属于特定类型 我尝试使用模式构造(即:?): 错误: 此运行时强制或类型测试来自类型 ”“是的 根据该程序点之前的信息,车辆涉及不确定类型。上不允许运行时类型测试 有些类型。需要进一步的类型注释 以下是完整的代码: type Vehicle = | Car | Tank | Helicopter let move = function | Car -> "

出于好奇,我如何在歧视工会案例的实际容器上进行模式匹配

具体来说,我如何知道某个值是否属于特定类型

我尝试使用模式构造(即:?):

错误:

此运行时强制或类型测试来自类型 ”“是的 根据该程序点之前的信息,车辆涉及不确定类型。上不允许运行时类型测试 有些类型。需要进一步的类型注释

以下是完整的代码:

type Vehicle = 
    | Car
    | Tank
    | Helicopter

let move = function
    | Car        -> "wheels spin"
    | Tank       -> "tracks roll"
    | Helicopter -> "Blades spin"

let isVehicle = fun a -> match a with
                         | :? Vehicle -> "Is a vehicle"
                         | _          -> "Is NOT a vehicle"

应向lambda参数添加类型注释:

let isVehicle = fun (a:obj) -> match a with
                               | :? Vehicle -> "Is a vehicle"
                               | _          -> "Is NOT a vehicle"
let isVehicle = fun (a:obj) -> match a with
                               | :? Vehicle -> "Is a vehicle"
                               | _          -> "Is NOT a vehicle"