我有一个记录类型:
type Person =
{
Name : string
Age : int
}
我需要一个函数,它使用默认(在C#视点中)字段返回此记录的新实例。
我可以这样做:
let f =
{
Name = ""
Age = 0
}
但我想避免所有字段枚举并使用类似的东西:
let f = new Person
有什么办法吗?
答案 0 :(得分:9)
F#允许向记录和有区别的联盟添加方法/属性:
type Person =
{
Name: string
Age: int
}
with
static member Default = { Name = ""; Age = 0 }
在FSI:
> Person.Default;;
val it : Person = {Name = "";
Age = 0;}
答案 1 :(得分:2)
已使用unchecked.DefaultOf<'t>
。但是要注意F#记录是不可变的,所以这可能不是你想要的。
答案 2 :(得分:0)
简单来说,您可以只使用let绑定。
type Person =
{
Name : string
Age : int
}
let defaultPerson = { Name = ""; Age = 0 }