5.2.1.1 用元组代替 out 参数

728 篇文章 1 订阅
349 篇文章 0 订阅

5.2.1.1 用元组代替 out 参数

 

如果确实想,那么,F# 也可以使用 out 参数,但是,元组通常是首选,因为,F# 自动将有 out 参数的 .NET 方法暴露成返回元组的方法,因此,不需要做任何事情,完全是透明的。这就是说,F# 代码看起来仍然像惯用的函数代码,即使调用的.NET 代码没有元组的概念。在 .NET 中,最广泛使用的、有 out 参数的方法可能是 TryParse,用于所有的数值类型,比如,Int32;如果要在 F# Interactive 中使用这个方法,首先需要打开 System 命名空间。我们来看一个在 C# 中使用的示例(使用out 参数):

 

int parsed;

bool success =Int32.TryParse("41", out parsed);

 

以及 F#  的示例(使用元组)

 

let (success, parsed) = Int32.TryParse("41");;

 

F# 版本写起来相当容易,看起来更像“函数式”,因为,它避免了把参数值作为引用传递给可变的变量。在这个示例中,我们使用模式匹配,解析返回的元组;如果想完全忽略成功的标记,也可以使用 snd 函数,只挑选返回元组中的数值。当解析失败时,返回的将是这个类型的默认值,即 0;另外,我们也可以写一个工具函数,指定默认值。我们将在下一章学习写这样的函数。

现在,在学习使用 F# 元组的最佳实践之前,要暂时回到有关值与类型的讨论,重温元组类型,以及这些类型的值如何构造的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值