F#组成的类型。如何实例化和使用。

时间:2018-05-23 08:22:08

标签: .net types f# type-conversion

我可以创建和实例化这样的简单类型:

type MyStr1 = MyStr1 of string
let myStr1 = MyStr1("aaa")

type MyStr2 = MyStr2 of string
let myStr2 = MyStr2("bbb")

然后我可以将它们组成第三种类型:

type MyStr3 = MyStr1 -> MyStr2

如何实例化MyStr3?这个对象代表什么?它的用途是什么?

1 个答案:

答案 0 :(得分:4)

函数类型为type alias

type MyStr3 = MyStr1 -> MyStr2

这不是严格意义上的类型,只是您知道的别名:)

但您可以使用它来创建此别名的值:

let myFun : MyStr3 =
    fun (MyStr1 str) -> MyStr2 str

let result = myFun myStr1
printfn "%A" result //prints `MyStr2 "aaa"`

<强> ADDED : 收到您的评论:

type MyStr4 = MyStr4 of string

type MyStr3 = MyStr1 -> MyStr2 -> MyStr4

let myFun : MyStr3 = 
    fun (MyStr1 str1) (MyStr2 str2) -> MyStr4 (str1 + str2)