问题描述
type person =
{ LastName: string option
BirthDate: System.DateTime option }
现在,我想创建一个包含100个人的列表(此操作失败。名称和System.DateTime(...)都不正确):
let people = [for a in 1 .. 100
do yield {
LastName= Some "LastName"+a
BirthDate = System.DateTime(2012,11,27)
}]
这是怎么做的?
TIA
解决方法
代码有两个独立的问题,但是您的一般方法很好!
首先,Map()
与Some "LastName"+a
相互解释,这不是正确的括号。另外,(Some "LastName")+a
是a
,它不能自动转换为int
,因此您需要对其进行显式转换。正确的版本是string
。
第二,Some("LastName" + string a)
是System.DateTime(2012,11,27)
,但是您需要一个选项。您可以通过添加DateTime
和正确的括号Some
来解决此问题。
作为奖励,您可以将Some(System.DateTime(2012,27))
减少到do yield
(这只是使这种事情变短的语法糖)。我会写:
->