淺談Visual Studio 2010下F#代碼智能糾錯
之前51CTO開發(fā)頻道報道過《Visual Studio 2010中F#十三項新特性詳解》,希望通過本文大家能更深入的了解F#。
先建立一個F#的項目,在編輯區(qū)鼠標右鍵選擇打開F# Interact ive,我們可以在VS運用fsi.exe的所有功能,也可以如同SQL一樣選擇語句執(zhí)行。
首先我們看到上面的提示#help,我們可以直接在 F# Interactive中輸入
就出現(xiàn)了如下圖:
前3個很明顯是控制DLL文件和FS文件的動態(tài)加載,time是一個很有趣的東西,開啟之后在語句快運行時都會有相關的性能指數(shù)
Real: 00:00:00.003, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
的顯示,很方便我們對程序的性能作出判斷。
好了,前面的簡單介紹過后,我們開始正式編寫代碼了:
- > let int = 1
- let double = 1.0
- let float = 1.0f
- ;;
- val int : int = 1
- val double : float = 1.0
- val float : float32 = 1.0f
1-4行是輸入,6-8行是結果。我們發(fā)現(xiàn)作為C#關鍵字的int、double、float在F#中不再是關鍵字了。而通過結果我們可以看到,F(xiàn)#實際上也是一門強類型的語言,上面聲明的3個標識符都有明確的類型。這種類型推導技術大家應該并不陌生,C#3.0的關鍵字var也正是使用了這種技術。
了解了類型推導之后,我們接著來看F#的列表推導:
- > let list = [1..10]
- let list0 = ['A' .. 'Z']
- let list1 = [0..3..30]
- let list2 = [9..-1..0]
- let list3 = [for x in 1 .. 10 -> x * x];;
- val list : int list = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
- val list0 : char list = ['A'; 'B'; 'C'; 'D'; 'E'; 'F'; 'G'; 'H'; 'I'; 'J'; 'K'; 'L'; 'M'; 'N'; 'O';
- 'P'; 'Q'; 'R'; 'S'; 'T'; 'U'; 'V'; 'W'; 'X'; 'Y'; 'Z']
- val list1 : int list = [0; 3; 6; 9; 12; 15; 18; 21; 24; 27; 30]
- val list2 : int list = [9; 8; 7; 6; 5; 4; 3; 2; 1; 0]
- val list3 : int list = [1; 4; 9; 16; 25; 36; 49; 64; 81; 100]
如果你需要對集合元素篩選,突然發(fā)現(xiàn)
- let evens = [for x in 1 .. 10 when x % 2 = 0 -> x];;
提示語法錯誤,這是因為在VS2010中F#對語法方便做了修訂,現(xiàn)在需要實現(xiàn)這樣的功能要采用下面的寫法
- let evens = [for x in 0..10 do if x % 2 = 0 then yield x];;
可以參考這里
(今天寫了3個小時才寫了這么點,看來寫B(tài)log也是體力活呢。通過上面可以看到F#給我們的編程帶來了便捷的方式,我要再接再厲繼續(xù)寫下去。)
原文標題:F#學習(二)
鏈接:http://www.cnblogs.com/Damon/archive/2010/05/11/1732743.html
【編輯推薦】