F# 3.0 新特性简介

  • Anand Narayanaswamy
  • 侯伯薇

2012 年 8 月 4 日

话题:函数式编程语言 & 开发

即将发布的.NET Framework 4.5 会给F# 3.0语言带来多项新特性,除了类型提供器(type providers)LINQ 查询之类的核心特性之外,还有新的类型属性(type attribute)、三引号字符串常量、自动属性以及对未使用变量的警告等。

如果你向 F# 记录类型附加 F# 3.0 中新引入的 [] 属性,那么编译器就会针对这种类型生成默认的构造器和属性设置方法,放置到生成的中间语言代码中。

微软的 Visual Studio F# 开发者 Brian McNamara 说到:“[] 属性可能会帮助你处理 WPF 数据绑定和 Entity Framework 的情况。”

F# 3.0 引入了三引号的字符串常量,意味着三个引号之间的所有代码都是逐字解释的,因此不可能进行转码。借助于这种特性,开发者就能够添加 XAML 作为字符串常量,这对于在程序中嵌入 XML 代码作为数据或者向类型提供器传递大型字符串作为参数会非常有用。

M-Brace 的首席工程架构师 Nick 说到:“我已经用 F# 做了四年编码工作,现在很高兴看到 F# 在 Visual Studio 中得到完全的支持,终于到了 F# 成为主流的时刻了。”

和之前的版本相比,F# 3.0 对自动属性的使用做出了改善,从而开发者能够在一行代码中使用这种特性,如下所示:

type MyClass() = member val Y = 0 with get, set,

在上面的代码中,member val表示自动属性,而 Y 的值是在=后面声明的。

我已经使用 F# 有两年多,非常喜欢这种语言。我之前使用 C# 开发,最初的转换比较头疼,但非常值得,软件开发者 Huw Simpson 如是说。

F# 3.0 引入了一种新特性,使用它你可以使用命令行的方式激活警告代码 1182,如果在你的代码中有未被使用的变量,那么 F# 编译器就会提出警告。在 Visual Studio 2012 中,你可以从项目属性对话框的 Build 标签页中把--warnon:1182添加到Other flags字段中,从而激活这种特性。

微软的 Visual Studio F# 开发者 McNamara 说:“在有 10 万行代码的大型项目中,未被使用的变量警告会帮助你找到 bug。”

查看英文原文:Introducing the New Features of F# 3.0
函数式编程语言 & 开发