我可以创建和实例化这样的简单类型:
type MyStr1 = MyStr1 of string
let myStr1 = MyStr1("aaa")
type MyStr2 = MyStr2 of string
let myStr2 = MyStr2("bbb")
然后我可以将它们组成第三种类型:
type MyStr3 = MyStr1 -> MyStr2
如何实例化MyStr3?这个对象代表什么?它的用途是什么?
答案 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)