成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

F#簡明教程三:F#語法精要

原創(chuàng)
開發(fā) 開發(fā)工具
F#基本語法的學習是基于對F#類型系統(tǒng)和類型推斷機制的理解的。在本節(jié)教程中,我們將學習到F#的變量聲明和程序流程結構。

【51CTO獨家特稿】在上一節(jié)F#教程中,我們對F#的類型系統(tǒng)和類型推斷機制有了一個初步的認識。F#的類型推斷原理是學習F#的重要基礎。本節(jié)課程,我們將在F#類型基礎上進一步學習F#的一些基本語法。

“l(fā)et”表達式是F#語法的核心,可以用作定義函數(shù)、序列等多種用途。另外,F(xiàn)#使用空格來標記程序塊的開始與結束。

定義值

  1. let x = 2 
   

定義函數(shù)值 

  1. let f a = a + x 

定義循環(huán)函數(shù)

  1. open System.IO   
  2. let rec printSubDirFiles dir =   
  3.    let fles = Directory.GetFiles dir  
  4.    let dirs =  Directory.GetDirectories dir   
  5.    printf “%s\n%A\n\n” dir fles  
  6.    Array.iter printSubDirFiles dirs 

此外,F(xiàn)#還提供傳統(tǒng)的循環(huán)和迭代等流程控制結構,比如if、for、while。但我們需要注意的是,F(xiàn)#中的“if…then”和“if…then…else”與傳統(tǒng)的面向?qū)ο笳Z言有些不同。在F#中,大多數(shù)表達式必須含有一個值,并且控制結構“if…then…else”表達式的兩邊的值必須是同一類型。注:F#的這種語法約定源自其推斷型語言的編譯機制,詳細請參考上一節(jié)教程中關于F#類型推斷機制的介紹。

F#中的常用流程控制語句示例

F#常用流程控制語句

與大多數(shù).NET平臺上的編程語言相似,F(xiàn)#也提供一些組織代碼的機制。事實上,F(xiàn)#提供模塊和命名空間兩種方式,下面的一些演示將給出C#和VB的命名空間。F#的模塊化不只局限與語法范圍,還提供模塊化的層級標準,例如集合和函數(shù)。

F#的基礎代碼組織:命名空間、類型和模型

  1. namespace MyFSharpProg  
  2. open System.Net  
  3. type Foo () =  
  4.   member x.GetRequest = WebRequest.  
  5. Create  
  6. module Main = begin  
  7.  // values and functions here  
  8. end 

與傳統(tǒng)的函數(shù)式編程原則相同,多數(shù)時候,F(xiàn)#的標識符是不可變的。但F#允許定義和修改使用“mutable”保留字的值,或通過“ref”保留字改變其前面的引用。mutable的值可以通過左箭頭操作(“<-”);ref的值可以通過“:=”操作符制指定。我們可以通過“!”獲取ref的值。下面來看具體示例:

聲明/更新可變值

  1. let mutable x = 0  
  2. x <- x + 1 

 

聲明/更新參考值

  1. let x = ref 0  
  2. x := !x + 1 

 

F#小提示:在習慣了C#或Java等編程語言后,剛剛開始F#編程,閱讀F#代碼感覺就像亂碼一樣。因為F#為了保有函數(shù)式編程的一些優(yōu)秀特質(zhì),不得不引入一些如“<-”、“:=”、“!”等奇怪的符號作為操作符或運算符;另外,F(xiàn)#在代碼中需要通過一些推斷機制來評判變量的類型,在閱讀F#代碼時,應對F#的類型系統(tǒng)做到心中有數(shù),所以,多數(shù)時候我們看到的是“l(fā)et”,而不是傳統(tǒng)的“int”、“string”、“float”等。希望大家能充分理解F#的類型系統(tǒng)和類型推斷機制,這是F#的重要基礎,也是走進函數(shù)式編程語言的重要一步。

【F#教程回顧】

  1. F#簡明教程一:F#與函數(shù)式編程概述
  2. F#簡明教程二:F#類型系統(tǒng)和類型推斷機制
責任編輯:佚名 來源: 51CTO
相關推薦

2010-01-07 10:04:18

F#函數(shù)式編程

2010-01-15 08:33:13

F#F#類型推斷F#教程

2009-08-13 17:25:21

F#入門

2010-04-07 16:51:59

F#

2009-08-13 17:39:48

F#數(shù)據(jù)類型Discriminat

2011-06-09 09:52:41

F#

2009-08-19 09:42:34

F#并行排序算法

2009-08-27 09:16:48

F#中DSL原型設計

2009-09-10 14:18:59

Functional F#

2009-11-16 09:05:46

CodeTimer

2010-03-26 19:22:08

F#代理

2012-11-06 10:01:35

ContinuatioF#

2009-12-04 09:16:44

Visual Stud

2009-12-14 09:04:10

F#運算符

2009-12-11 13:59:35

F#

2010-05-13 09:21:44

F#Visual Stud

2012-03-12 12:34:02

JavaF#

2010-04-07 09:46:05

2010-12-21 08:53:04

Mono

2009-11-09 17:51:51

F#函數(shù)式編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕在线视频 | 亚洲性网 | www.精品一区 | 欧美日韩亚洲一区二区 | 日本网站免费在线观看 | 亚洲美女网站 | 久久综合九九 | 91超碰在线观看 | 天堂一区二区三区 | 亚洲视频在线免费 | 亚洲综合伊人 | 国产日韩欧美在线一区 | 国产乱码高清区二区三区在线 | 亚洲毛片在线 | 精品国产乱码久久久久久果冻传媒 | 国产精品一区二区三 | 欧美性吧 | 日韩一区二区三区在线 | 在线视频亚洲 | 一级片av | 欧美a级成人淫片免费看 | 国产精品久久久久久久免费大片 | 欧美国产精品一区二区 | 久久久区 | 伊人久操 | 亚洲欧美国产精品久久 | 欧美中文在线 | 成年网站在线观看 | 伊人狼人影院 | 久久高清免费视频 | 男女网站免费 | 国产精品国产精品国产专区不蜜 | 欧美色综合一区二区三区 | 欧美国产视频 | 国产精品123区 | 色婷婷综合久久久中文字幕 | 啪啪综合网 | 国产成人99久久亚洲综合精品 | 日韩av一二三区 | 亚洲一区二区三区视频在线 | 日韩色视频 |