|
|
1
6
在编写C#时,如果需要一个可以接受多个不同参数集的函数,只需创建方法重载:
当您编写F#时,需要一个可以接受多个不同参数集的函数时,您可以创建一个可以包含所有不同参数集的区分并集,并创建一个接受该并集的函数:
作为一个单一的功能,
那么F#如何实现
签字人
以及
当然你也可以实现同样的功能
|
|
|
2
11
这个问题有点模棱两可,所以我就漫谈一下F的真实性。
在F#,
方法
在F#中,let绑定函数值不能重载。所以:
这意味着你永远不能有一个“不合格”的标识符
最后,这个疯狂的案例可能就是引发这个问题的原因。F#可以定义
所以这些都是由编译器处理的,在我们需要生成代码时,我们再次静态地解析了我们在这个调用站点使用的特定类型。“类型”的
(疯狂的东西的主要目的/理由是为了重载的数学运算符。没有
|
|
|
3
4
假设我理解这个问题,在F#中,您可以根据具有特定签名的成员的可用性来定义表达式。例如
这是一个传球的例子
这将运行该方法
编辑 考虑到这个问题的来龙去脉( C# - How can I âoverloadâ a delegate? ),我似乎根本没有回答你真正的问题。相反,盖布似乎在谈论的是一个人可以很容易地定义和使用歧视工会。所以在另一个线程上提出的问题可以用F#这样回答:
在低水平上,这里没有CIL魔法;只是
此外,这里没有函数的特殊性;F#判别并集使定义具有固定数量的命名替代项的类型变得很容易,每个替代项都可以包含您想要的任何类型的数据。 |
|
|
4
1
我不太确定你是否正确理解了你的问题。。。F#编译器使用 FSharpFunc 因此,F#不使用委托,而是使用带有具体或泛型参数的特殊类型。 如果你的问题是关于 添加一些我不知道确切是什么但是它有加法运算符 那你需要用 内联 关键字和编译器将在调用位置发出函数体。@kvb的回答正好描述了这个案例。 |
|
|
Thomas · 使类型别名在F中不可互换# 3 年前 |
|
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 7 年前 |
|
|
Soldalma · 我可以实例化包含顶级副作用值的类吗? 7 年前 |
|
|
matekus · F#-包含数字的字符串的自然排序 7 年前 |
|
|
matekus · F#类型匹配-无法创建映射或匹配记录 7 年前 |
|
|
Rob Lyndon · 未找到F#ProvidedTypes文件 7 年前 |
|
|
red-swan · 如何将intro ML.Net演示翻译为F#? 7 年前 |
|
|
jkone27 · F#-在编译时从字符串生成简单的空类型 7 年前 |