【发布时间】:2017-02-24 00:40:53
【问题描述】:
当我在函数定义中设置括号时,函数类型会改变。
我有两个函数:addition1(不带括号)和addition2(带括号)。类型相同,但函数签名不同。为什么类型不同?
let addition1 a b =
a + b
//val addition1 : a:int -> b:int -> int
let addition2(a, b) =
a + b
//val addition2 : a:int * b:int -> int
【问题讨论】:
-
您还添加了一个逗号,这是一个很大的变化
-
不一样,第一个函数取两个参数(实际上取第一个参数然后创建一个取第二个参数的函数)。并且可以咖喱。第二个函数采用一个参数,即一个元组。第一种形式在 F# 代码中很常见,第二种更适用于与 BCL 的互操作。
-
@s952163 我明白了。有什么明显的区别吗?
标签: f#