浅谈Visual Studio 2010下F#代码智能纠错

开发 后端
本文将介绍的是Visual Studio 2010下F#代码智能纠错,也就是在代码错误的情况下VS2010会智能提示错误,帮助程序员发现BUG和错误。

之前51CTO开发频道报道过《Visual Studio 2010中F#十三项新特性详解》,希望通过本文大家能更深入的了解F#。

先建立一个F#的项目,在编辑区鼠标右键选择打开F# Interact ive,我们可以在VS运用fsi.exe的所有功能,也可以如同SQL一样选择语句执行。

F#版本信息

首先我们看到上面的提示#help,我们可以直接在 F# Interactive中输入

就出现了如下图:

提示

前3个很明显是控制DLL文件和FS文件的动态加载,time是一个很有趣的东西,开启之后在语句快运行时都会有相关的性能指数

Real: 00:00:00.003, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0

的显示,很方便我们对程序的性能作出判断。

好了,前面的简单介绍过后,我们开始正式编写代码了:

  1.  > let int = 1  
  2.  let double = 1.0  
  3.  let float = 1.0f  
  4.  ;;  
  5. val int : int = 1  
  6. val double : float = 1.0  
  7. val float : float32 = 1.0f 
 

1-4行是输入,6-8行是结果。我们发现作为C#关键字的int、double、float在F#中不再是关键字了。而通过结果我们可以看到,F#实际上也是一门强类型的语言,上面声明的3个标识符都有明确的类型。这种类型推导技术大家应该并不陌生,C#3.0的关键字var也正是使用了这种技术。

了解了类型推导之后,我们接着来看F#的列表推导:

  1.  > let list = [1..10]   
  2. let list0 = ['A' .. 'Z']   
  3. let list1 = [0..3..30]   
  4. let list2 = [9..-1..0]   
  5. let list3 = [for x in 1 .. 10 -> x * x];;    
  6. val list : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]  
  7. val list0 : char list =   ['A''B''C''D''E''F''G''H''I''J''K''L''M''N''O';  
  8.  'P''Q''R''S''T''U''V''W''X''Y''Z']  
  9. val list1 : int list = [0; 3; 6; 9; 12; 15; 18; 21; 24; 27; 30]  
  10. val list2 : int list = [9; 8; 7; 6; 5; 4; 3; 2; 1; 0]  
  11. val list3 : int list = [1; 4; 9; 16; 25; 36; 49; 64; 81; 100] 

如果你需要对集合元素筛选,突然发现

  1. let evens = [for x in 1 .. 10 when x % 2 = 0 -> x];; 
 

提示语法错误,这是因为在VS2010中F#对语法方便做了修订,现在需要实现这样的功能要采用下面的写法

  1. let evens = [for x in 0..10 do if x % 2 = 0 then yield x];; 

可以参考这里

(今天写了3个小时才写了这么点,看来写Blog也是体力活呢。通过上面可以看到F#给我们的编程带来了便捷的方式,我要再接再厉继续写下去。)

原文标题:F#学习(二)

链接:http://www.cnblogs.com/Damon/archive/2010/05/11/1732743.html

【编辑推荐】

  1. 升级Visual Studio 2010和.Net 4注意要点
  2. 探究Visual Studio 2010中Parallel的使用
  3. Visual Studio 2010中C++的四大变化
  4. 教你如何用好Visual Studio 2010层次验证
  5. 关注Visual Studio 2010中代码提示的改进

责任编辑:彭凡 来源: 博客园
相关推荐

2009-12-04 09:16:44

Visual Stud

2010-04-07 09:46:05

2009-05-25 09:11:34

Visual StudF#微软

2009-12-02 09:43:38

Visual Stud

2009-12-04 17:21:35

Visual Stud

2009-05-26 13:39:11

F#Visual Stud

2009-12-16 14:46:06

Visual Stud

2011-08-02 08:48:58

Visual Stud

2009-10-27 09:12:50

Visual Stud

2011-08-25 09:32:30

Visual Stud

2011-06-09 09:52:41

F#

2010-07-22 13:23:43

2011-03-08 10:18:18

Visual StudMongoDB

2009-11-10 13:43:37

Visual Stud

2009-09-07 09:22:17

Visual Stud代码片段

2009-12-02 09:50:07

Visual Stud

2009-05-11 09:45:23

Visual Stud复制代码ID

2009-10-23 13:52:59

Visual Stud

2010-02-22 16:43:33

Visual Stud

2009-11-11 09:48:06

Visual Stud
点赞
收藏

51CTO技术栈公众号