W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
您已經(jīng)看到了F#程序的基本結(jié)構(gòu),因此很容易理解F#編程語言的其他基本構(gòu)建塊。
F#程序由各種tokens組成。 tokens可以是關(guān)鍵字,標識符,常量,字符串文字或符號。 我們可以將F#tokens分為兩種類型 -
下表顯示了 keywords的簡要說明。 我們將在后續(xù)章節(jié)討論這些 keywords的使用。
關(guān)鍵詞 | 描述 |
---|---|
abstract | 表示在聲明的類型中沒有實現(xiàn)的方法,或者是虛擬的并且具有默認實現(xiàn)的方法。 |
and | 用于相互遞歸的綁定,在屬性聲明,并與泛型參數(shù)多個約束。 |
as | 用來給當前類對象的對象名。也用于給一個名字模式匹配內(nèi)的整個模式。 |
assert | 用于在調(diào)試過程中驗證代碼。 |
base | 用作基類對象的名稱。 |
begin | 在冗長的語法,表示一個代碼塊的開始。 |
class | 在冗長的語法,表示一個類定義的開始。 |
default | 表示抽象方法的實現(xiàn);與抽象方法聲明一起使用,以創(chuàng)建一個虛擬的方法。 |
delegate | 用于聲明委托。 |
do | 用于循環(huán)結(jié)構(gòu)或者執(zhí)行必要的代碼。 |
done | 在詳細的語法,指示代碼中循環(huán)表達塊的結(jié)束。 |
downcast | 用于轉(zhuǎn)換為繼承鏈中較低的類型。 |
downto | 用于反向計數(shù)。 |
elif | 使用條件分支。如果其他的縮寫形式。 |
else | 使用條件分支。 |
end | 在類型定義和擴展類型,表示成員定義一節(jié)的末尾。 在冗長的語法,用于指定的關(guān)鍵字開頭開始一個代碼塊的結(jié)束。 |
exception | 用于聲明異常類型。 |
extern | 指示已聲明的程序元素在另一個二進制文件或程序集中定義。 |
false | 作為一個布爾值。 |
finally | 與嘗試一起使用,以引入執(zhí)行無論是否發(fā)生異常的代碼塊。 |
for | 用于循環(huán)結(jié)構(gòu)。 |
fun | 應(yīng)用于lambda表達式,也稱為匿名函數(shù)。 |
function | 用作fun關(guān)鍵字的一個較短的替代方法,以及在單個參數(shù)上具有模式匹配的lambda表達式中的匹配表達式。 |
global | 用于引用頂層.NET命名空間。 |
if | 在使用條件分支結(jié)構(gòu)。 |
in | 用于序列的表達,并在詳細的語法,從單獨的綁定表達式。 |
inherit | 用于指定基類或基本接口。 |
inline | 用于指示應(yīng)該直接集成到調(diào)用者代碼中的函數(shù)。 |
interface | 用于聲明和實現(xiàn)接口。 |
internal | 用于指定一個成員是一個組件內(nèi)可見,但不是外面。 |
lazy | 用于指定的運算即需要一個結(jié)果,只有當被執(zhí)行。 |
let | 用于相關(guān)聯(lián),或結(jié)合,一個名字的值或功能。 |
let! | 在異步工作流用于一個名稱綁定到一個異步計算,或者,在其它的計算表達式的結(jié)果,用于將一個名稱綁定到的結(jié)果,也就是計算類型。 |
match | 一個值比較的模式用于分支。 |
member | 用來聲明對象類型的屬性或方法。 |
module | 用于將名稱與一組相關(guān)的類型,價值和功能聯(lián)系起來,在邏輯上它與其他代碼中分離出來。 |
mutable | 用于聲明變量,也就是說,是可以改變的一個值。 |
namespace | 用于將名稱與一組相關(guān)的種類和模塊相關(guān)聯(lián),在邏輯上它與其他代碼中分離出來。 |
new | 用于聲明,定義或調(diào)用創(chuàng)建或者它可以創(chuàng)建一個對象的構(gòu)造函數(shù)。 在泛型參數(shù)約束也用來表示一個類型必須有一定的構(gòu)造函數(shù)。 |
not | 實際上不是一個關(guān)鍵字。然而,并非在組合結(jié)構(gòu)體被用作一個通用的參數(shù)約束。 |
null | 表明不存在一個對象。 在泛型參數(shù)約束也使用。 |
of | 用于識別聯(lián)合指示值類的類型,并在代表和異常聲明。 |
open | 用于使名稱空間或模塊的內(nèi)容可用,無需限定。 |
or | 與布爾條件一起使用作為布爾或運算符。 相當于||。 也用于成員約束。
|
override | 用于實現(xiàn)一個版本從基部版本不同的抽象的或虛擬的方法。 |
private | 限制訪問一個構(gòu)件到代碼中的相同類型或模塊。 |
public | 允許從種類以外訪問成員。 |
rec | 用于指示一個功能是遞歸的。 |
return | 用于指示值,以提供作為計算表達式的結(jié)果。 |
return! | 用于指示計算表達式,評估時,提供了含有計算表達式的結(jié)果。 |
select | 用于查詢表達式來指定哪些領(lǐng)域或列中提取。注意,這是一個上下文關(guān)鍵字,這意味著它是不實際的保留字,它僅作用就像在適當?shù)姆秶鷥?nèi)的關(guān)鍵字。 |
static | 用于指示的方法或?qū)傩?,可以在沒有類型,或者是一類的所有實例之間共享的值構(gòu)件的一個實例被調(diào)用。 |
struct | 用來聲明結(jié)構(gòu)類型。 在泛型參數(shù)約束也使用。 用于模塊定義OCaml的兼容性。 |
then | 用于在條件表達式。 也用于執(zhí)行對象的構(gòu)造后的副作用。 |
to | 用在for循環(huán)來表示的范圍。 |
true | 作為一個布爾值。 |
try | 用于引入可能生成異常的代碼塊。 與finally一起使用。 |
type | 用于聲明一個類,記錄,結(jié)構(gòu),識別聯(lián)合,枚舉類型,計量單位或類型的縮寫。 |
upcast | 用于轉(zhuǎn)換為一個類型,是在繼承鏈高。 |
use | 用于轉(zhuǎn)換為在繼承鏈中較高的類型。 |
use! | 用來代替let! 在異步工作流和其他計算表達式的值需要Dispose被調(diào)用以釋放資源。 |
val | 用于在簽名,以指示一個值,或在一個類型聲明一個部件,在有限的情況下。 |
void | 指示.NET void類型。與其他.NET語言互操作時使用。 |
when | 用于模式匹配的布爾條件(當guards時),并為通用類型參數(shù)引入約束子句。 |
while | 引入了一個循環(huán)結(jié)構(gòu)。 |
with | 在模式匹配表達式匹配關(guān)鍵字一起使用。對象表達式,記錄復(fù)制表達式和類型擴展名也被用來引進的成員定義,并引入異常處理程序。 |
yield | 用于在序列表達以產(chǎn)生用于一序列的值。 |
yield! | 用于在一個計算表達式給定的計算表達式的結(jié)果追加到的結(jié)果為含有計算表達式的集合。 |
有些保留關(guān)鍵字從OCaml的語言來
asr | land | lor | lsl | lsr | lxor | mod | sig |
保留一些其他保留的關(guān)鍵字用于將來擴展F#
atomic | break | checked | component | const | constraint | constructor |
continue | eager | event | external | fixed | functor | include |
method | mixin | object | parallel | process | protected | pure |
sealed | tailcall | trait | virtual | volatile |
F#提供了兩種類型的注釋 -
一個編寫良好的程序應(yīng)該有一個頂層語句,它將調(diào)用程序的主循環(huán)。
一個非常簡約的F#程序,將在屏幕上顯示“Hello World”
(* This is a comment *) (* Sample Hello World program using F# *) printfn "Hello World!"
當你編譯和執(zhí)行程序,它產(chǎn)生以下輸出 -
Hello World!
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: