F# 中的許多建構都有兩種語法形式: 詳細資訊語法 和 輕量型語法。 詳細資訊語法不如常使用,但具有不區分縮排的優點。 輕量型語法較短,並使用縮排來表示建構的開頭和結尾,而不是 、、 in等其他關鍵詞。beginend 默認語法是輕量型語法。 本主題描述未啟用輕量型語法時,F# 建構的語法。 詳細資訊語法一律會啟用,因此即使您啟用輕量型語法,您仍然可以針對某些建構使用詳細資訊語法。
建構數據表
下表顯示 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 to 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
|
另請參閱