在F#签名文件中,函数签名周围的括号有何意义?

f#

作为 .fsi 签名文件的使用者,两者之间有什么区别(如果有的话):

val sum : int -> int -> int

val sum : (int -> int -> int)

似乎第二个可以通过函数定义函数“别名”来实现,但第一个只能通过函数定义来实现。

具有以下内容:

// .fsi
val add : int -> int -> int
val sum : int -> int -> int
// .fs
let add a b = a + b
let sum = add

产生错误

error FS0034: Module 'Butter' contains
    val sum : (int -> int -> int)
but its signature specifies
    val sum : int -> int -> int    

但是,如果签名文件是:

// .fsi
val add : (int -> int -> int)
val sum : (int -> int -> int)

它编译正常。

这种行为是故意的吗,如果是的话,括号是如何改变界面的?

以上是在F#签名文件中,函数签名周围的括号有何意义?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>