F# 3.0 包含在 Visual Studio 11 beta 里,支持使用 LINQ 表达式。
F#总是可以访问底层的库,这使得 LINQ 成为可能,但 F# 3 却是第一个在语法上提供实际支持的版本。就像 Visual Basic, F#的 LINQ 直接在查询里支持聚合函数,如 count、sum、first 和 last。此外,F#也和 VB 一样不需要末尾的“select”子句。所有查询都要放在以“query {”开始,并以匹配的“}”结束的表达式里。
LINQ 或语言集成查询是一种类似 SQL 的语法,最初是为 Cω这个实验语言开发的,最终却在 Visual Basic 和 C#里发布。虽然很独特,但概念上却类似于 80 年代和 90 年代的语言,如 dBase 和 PowerBuilder 。
另一个在 F# 3 里发布的特性是类型提供程序。这个话题相对复杂,涉及到的东西可以看做代码生成和动态类型之外的另一种选择。若想了解更多,我们建议你看看 Joe Pamer 关于类型提供程序的视频演讲。 F#自带以下类型提供程序:
- OData 服务
- 数据库链接,如 SQL
- 数据库架构,如 LINQ to SQL 的 dbml 文件
- 实体数据模型格式(即 EDMX 架构文件)
- Web Service 的 WSDL 文档
- 以.resx 为扩展名的资源文件
类型提供程序的一个有趣特性是它们可以在设计时为 Visual Studio 的智能感知提供数据。这意味着会有一些时候代码完成的提示显示为“加载中”,而不是实际的属性和方法。这个延迟取决于每个类型提供程序以及远程服务器的响应速度。
F#还将支持可移植库。可移植库是无需单独重新编译就可以在.NET、Silverlight、Windows Phone 和XNA 上共享的DLL。
最后,F# 3 通过“member val”关键字提供自动实现属性。属性需要在声明的时候进行初始化,可变属性需要添加“with get, set”后缀。
查看英文原文: LINQ for F#
活动推荐:
2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。
评论