gpt4 book ai didi

f# - F# 元组的扩展方法

转载 作者:行者123 更新时间:2023-12-02 22:42:35 24 4
gpt4 key购买 nike

是否可以为 F# 元组编写扩展方法?例如,添加实例方法.Item1和.Item2(如System.Tuple)相当于为2元组调用fst和snd?

最佳答案

System.Tuple<'T1, 'T2> F# 中内部表示(2 元素)元组的类型实际上已经具有属性 Item1Item2 ,但这些被 F# 编译器隐藏。将扩展成员添加到元组的明显方法并不能解决问题,因此我不希望它起作用(但可能有一些我不知道的解决方法)。

一般来说,我认为模式匹配比 Item1 这样的成员更可取。 , Item2等等(C# 3.0 程序员在使用元组时经常要求模式匹配支持:-))。

原因是模式匹配迫使你命名事物。比较这两个代码片段:

let (width, height) = tuple
width * height

以及使用属性的版本:

tuple.Item1 * tuple.Item2

第二个有点短,但可读性肯定较差。

关于f# - F# 元组的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14115260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com