F# Deedle GetSlice() 错误 "expects to have type DateTime option"

F# Deedle GetSlice() error "expects to have type DateTime option"

我在尝试使用 GetSlice() 方法时遇到错误。

cl.Rows.GetSlice( DateTime(2014,12,28,20,0,0), DateTime(2014,12,28,23,0,0))

错误是:此表达式应具有 DateTime 选项类型,但此处具有 DateTime 类型。两个参数 ( DateTime(2014,12,28,20,0,0), DateTime(2014,12,28,23,0, 0) ) 在上面的代码中

有人可以解释 'DateTime option' 类型和 'DateTime' 类型之间的区别吗?用于上述代码的正确语法是什么?

FsLab 版本(0.3.17)

方法 GetSlice 需要两个 DateTime option 类型的参数(正如编译器帮助告诉您的那样),但您只提供 DateTime.

要创建 't option 类型的值,请使用构造函数 Some:

cl.Rows.GetSlice( Some (DateTime(2014,12,28,20,0,0)), Some (DateTime(2014,12,28,23,0,0)) )

Option是一种类型,它要么封装某个类型的值,要么表示没有值。在F#中,其类型有两种写法:Option<'t>'t option

使用选项背后的主要动机是生成类型保存和无错误的代码 - 它使使用 nulls 和一些 Exceptions(例如 KeyNotFoundExcpetions)过时.