尝试使用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)变得过时。