f# - 如何在 f# 中匹配 Nullable Date 参数
问题描述
学习 F#,找不到答案...我想处理 Nullable 参数(原始 c# 中的 DateTime?)为 null 的情况,但我收到错误“Nullable 没有 null 作为正确的价值”。这样做的正确方法是什么?
let addIfNotNull(ht:Hashtable, key:string, value:Nullable<DateTime>) =
match value with
| null -> ()
| _ -> ht.Add(key,value)
ht
解决方案
通过属性可以从
System.Nullable<'T>
对象中获取实际值,通过调用方法Value
可以判断对象是否有值。System.Nullable<'T>
HasValue
所以,而不是match
你做
if value.HasValue then ht.Add(key, value.Value)
你可以使用
match Option.ofNullable value with ...
或声明一些主动模式来提供帮助。
推荐阅读
- java - JMeter 从路径参数的开头删除正斜杠
- android - 使用 Retrofit 和 GsonConverterFactory 将 JsonArray 转换为 Kotlin 数据类(预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY)
- firefox - 如何实现对 Firefox 48 及更高版本的 Protractor 支持?
- python - 使用标准标记进行 2D 彩色绘图的替代方法?
- excel - 通过用户表单查找具有特定值的行并复制/粘贴到另一张表
- sql - SQL SELECT 如何在两列之间查找子字符串编号?
- python-3.x - 如何从 .h5 文件正确加载带有自定义层的 Keras 模型?
- java - 用硒停用铬警报
- c# - 如何订阅泛型类的静态事件
- android - 我们可以检测手机是否有前置电动摄像头吗?