QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

F# 3.0 新特性简介

  • 2012-08-04
  • 本文字数:816 字

    阅读完需:约 3 分钟

即将发布的.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

2012-08-04 01:152260
用户头像

发布了 340 篇内容, 共 134.4 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

看过来!腾讯文档上架优麒麟软件商店啦

优麒麟

Linux 开源 腾讯 操作系统 麒麟操作系统

起个变量名,好的代码应该是这样的

蜜糖的代码注释

Java 互联网 开发 后端技术

华青融天加入,龙蜥社区再添科技风险监测领域新伙伴

OpenAnolis小助手

Linux 开源 合作伙伴

MySQL 如何解决幻读(MVCC原理分析)

Ayue、

MySQL InnoDB 1月月更

为数据库性能调优插上 AI 的翅膀 | 调优测试框架 Matrix 团队访谈

PingCAP

基于Flink CDC打通数据实时入湖

五分钟学大数据

flink 1月月更

2022年Flutter真的会一统大前端吗?

坚果

Flutter 小菜 1月月更

SAP ABAP 业务开关和 SAP 电商云的 Feature Level

汪子熙

angular abap 1月月更 增强包 增强技术

1月月更|推荐学java——Spring事务

逆锋起笔

spring事务管理 spring ioc java 编程 Spring Java Spring事务

TDSQL PostgreSQL执行计划详解

腾讯云数据库

tdsql 国产数据库

分享四款H5怀旧小游戏魔塔+伏魔记+三国霸业+寻仙纪

echeverra

前端 游戏

TDSQL-C PostgreSQL版的高可用特性

腾讯云数据库

tdsql 国产数据库

SparkSQL高并发:读取存储数据库

华为云开发者联盟

数据库 高并发 Sparksql 存储 读取

RavenDB起步--安装以及示例数据库

喵叔

中科柏诚:积极践行为中小企业服务宗旨,同乡村振兴有效衔接

联营汇聚

鸿蒙轻内核M核源码分析:LibC实现之Musl LibC

华为云开发者联盟

鸿蒙 内存分配 LibC Musl LibC Musl

智联生活行业加速器热门FAQ:物联网企业该如何与华为云合作?

华为云开发者联盟

物联网 华为云 智联生活 智联生活行业加速器 云市场

在线XML转JSON工具

入门小站

工具

ReactNative进阶(三十一): IoC 框架 InversifyJS 解读

No Silver Bullet

​React Native 1月月更 InversifyJS

事件驱动架构在 vivo 内容平台的实践

vivo互联网技术

微服务 云原生 事件驱动架构

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

码界西柚

并发编程 AQS CyclicBarrier Java 线程 1月日更

为什么ConcurrentHashMap是线程安全的?

王磊

20000字详解大厂实时数仓建设 | 社区征文

五分钟学大数据

数据仓库 实时数仓 1月月更 新春征文

字节跳动数据湖技术选型的思考与落地实践

字节跳动数据平台

数据湖 数据流 Apache Hudi

第四节:SpringBoot中web模版数据渲染展示

入门小站

springboot

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

面试官:知道 Flutter 生命周期?下周来入职!

百瓶技术

前端 生命周期 客户端 Flutter 小菜

TDSQL-A技术架构演进及创新实践

腾讯云数据库

tdsql 国产数据库

Redis:我是如何与客户端进行通信的

华为云开发者联盟

redis 通信 协议 指令 客户端

F# 3.0新特性简介_后端_Anand Narayanaswamy_InfoQ精选文章