【发布时间】:2017-09-25 21:04:26
【问题描述】:
我的源代码出现下一个错误:
- “名称”没有值
- 您应该调用备用构造函数
那么,我如何在 F# 中下一节课呢?
type Person = class
member val Name: string
member val Age: int option = None
new() = { Name = "Anonymous" }
new(name) = { Name = name }
new(name, age: int) = { Name = name; Age = age }
static member Hello =
printfn "Hello, %O" Name
end
编辑
根据这篇文章中的@user2088029 答案和Object initializer + property initializer (from C# to F#) 中的@kvb 答案,我创建了下一个我想要的来源。 问题是“Person(name, Age = age)”表示 error 带有“Noaccessible member or object constructor named 'Person' 需要 1 个参数”。
type Person(name) =
member this.Name: string = name
member this.Age: int option = None //with get,set
new() = Person("Anonymous")
new(name, age: int) = Person(name, Age = age)
member this.Hello =
printfn "Hello, %O" this.Name
用法:
let person = Person("Alex", Option = Some 25)
【问题讨论】:
标签: f#