詳細語法 (F#)
有兩種語法可用於 F# 語言中的許多建構:「詳細語法」(Verbose Syntax) 和「輕量型語法」(Lightweight Syntax)。 詳細語法不常使用,但它的優點是較不注重縮排。 輕量型語法的長度較短,並且會使用縮排來表示建構開頭和結尾,而不會使用其他關鍵字如 begin、end、in 等等。 預設語法為輕量型語法。 本主題描述未啟用輕量型語法時 F# 建構的語法。 詳細語法一律為啟用,因此即使啟用輕量型語法,仍然可以針對某些建構使用詳細語法。 您可以使用 #light "off" 指示詞來停用輕量型語法。
建構的表格
下表說明 F# 語言建構的輕量型語法和詳細語法內容,兩者之間存在一些差異。 在此表格中,角括號 (<>) 括住使用者提供的語法項目。 如需這些建構中所使用語法的詳細資訊,請參閱每個語言建構的文件。
複合運算式 |
<expression1>
<expression2>
|
<expression1>; <expression2>
|
巢狀 let 繫結 |
let f x =
let a = 1
let b = 2
x + a + b
|
let f x =
let a = 1 in
let b = 2 in
x + a + b
|
程式碼區塊 |
<expression1>
<expression2>
...
|
begin
<expression1>;
<expression2>;
end
|
for...do |
for counter = start to finish do
...
|
for counter = start .. finish do
...
done
|
while...do |
while <condition> do
...
|
while <condition> do
...
done
|
for...in |
for var in start .. finish do
...
|
for var in start .. finish do
...
done
|
do |
do ...
|
do ... in
|
記錄 |
type <record-name> =
{
<field-declarations>
}
<value-or-member-definitions>
|
type <record-name> =
{
<field-declarations>
}
with
<value-or-member-definitions>
end
|
類別 |
type <class-name>(<params>) =
...
|
type <class-name>(<params>) =
class
...
end
|
結構 |
[<StructAttribute>]
type <structure-name> =
...
|
type <structure-name> =
struct
...
end
|
已區分的聯集 |
type <union-name> =
| ...
| ...
...
<value-or-member definitions>
|
type <union-name> =
| ...
| ...
...
with
<value-or-member-definitions>
end |
介面 |
type <interface-name> =
...
|
type <interface-name> =
interface
...
end
|
物件運算式 |
{ new <type-name>
with
<value-or-member-definitions>
<interface-implementations>
}
|
{ new <type-name>
with
<value-or-member-definitions>
end
<interface-implementations>
}
|
介面實作 |
interface <interface-name>
with
<value-or-member-definitions>
|
interface <interface-name>
with
<value-or-member-definitions>
end
|
型別擴充 |
type <type-name>
with
<value-or-member-definitions>
|
type <type-name>
with
<value-or-member-definitions>
end
|
模組 |
module <module-name> =
...
|
module <module-name> =
begin
...
end
|
請參閱
概念
程式碼格式化方針 (F#)
其他資源
F# 語言參考
編譯器指示詞 (F#)