📜  F#构造函数(1)

📅  最后修改于: 2023-12-03 15:30:52.508000             🧑  作者: Mango

F#构造函数

F#构造函数是用于创建F#对象的函数。在F#中,构造函数采用与其他函数相同的语法,但是它们具有特殊的名称和用途。F#类和记录都有构造函数。

创建F#类的构造函数

在F#中,类的构造函数被称为 new 方法,它的作用是初始化类的实例。new 方法应该与类的名称相同,并且返回 unit 类型。

type MyClass(arg1:int, arg2:string) =
    let mutable x = arg1
    let mutable y = arg2
    member this.X with get() = x and set value = x <- value
    member this.Y with get() = y and set value = y <- value
    member this.DoSomething() =
        printfn "%d %s" this.X this.Y

let obj = new MyClass(123, "abc")
obj.DoSomething() // 123 abc

在这个例子中,MyClass 类有两个构造函数参数: arg1arg2xy 成员字段分别被初始化为这些参数的值。 DoSomething 方法会打印 xy 的值。

创建F#记录的构造函数

F#记录是一种轻量级且易于使用的数据结构,其中每个记录都有自己的属性。在F#中,记录的构造函数被称为“默认构造函数”,它用于创建新记录。

type MyRecord = { X:int; Y:string }

let r = { X = 123; Y = "abc" }
printfn "%d %s" r.X r.Y // 123 abc

在这个例子中,我们定义了一个名为 MyRecord 的记录,包含两个属性: X:intY:string 。我们使用花括号初始化了一个新记录 r ,并打印了它的属性。

总结

F#构造函数是用于创建F#对象的特殊函数。类和记录都有构造函数,它们分别被称为 new 方法和“默认构造函数”。构造函数通常用于初始化对象并设置初始状态。