F# Deedle GetSlice() 错误"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)DateTime(14,12,28:23,0))都存在此错误

有人能解释一下"DateTime选项"类型和"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

使用option的主要动机是生成类型保存和无错误的代码——这使得使用null s和一些Exception s(例如KeyNotFoundExcpetion s)变得过时。

相关内容

  • 没有找到相关文章

最新更新