Dvě formy syntaxe jsou k dispozici pro mnoho konceptů v jazyce F#: úplné syntaxe a lehký syntaxe.Syntaxe podrobného jako běžně nepoužívá, ale má výhodu méně citlivé na odsazení.Lehký syntaxe je kratší a používá Odsazení začátku a konce konstrukce signál, nikoli jako další klíčová slova begin, end, in, atd.Výchozí syntaxe je lehký syntaxe.Toto téma popisuje syntaxi pro F# konstrukce při zjednodušené syntaxe není povoleno.Syntaxe podrobného vždy povolena, tak i v případě, že povolíte lehký syntaxi, můžete získat úplné syntaxe pro některé konstrukce.Lehký syntaxe lze zakázat pomocí #light "off" směrnice.
Tabulka konstrukce
Následující tabulka uvádí zjednodušené a úplné syntaxe F# konstrukce jazyka v kontextu je rozdíl mezi dvěma formuláři.Lomené závorky (<>) v této tabulce uzavřete prvky syntaxe zadaných uživatelem.Naleznete v dokumentaci pro každý jazyk konstrukce podrobnější informace o syntaxi používané v rámci těchto konstrukcí.
Konstrukce jazyka
Lehký syntaxe
Verbose syntaxe
složené výrazy
<expression1>
<expression2>
<expression1>; <expression2>
vnořené let vazby
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
blok kódu
<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
záznam
type <record-name> =
{
<field-declarations>
}
<value-or-member-definitions>
type <record-name> =
{
<field-declarations>
}
with
<value-or-member-definitions>
end
Třída
type <class-name>(<params>) =
...
type <class-name>(<params>) =
class
...
end
struktura
[<StructAttribute>]
type <structure-name> =
...
type <structure-name> =
struct
...
end
discriminated unie
type <union-name> =
| ...
| ...
...
<value-or-member definitions>
type <union-name> =
| ...
| ...
...
with
<value-or-member-definitions>
end
rozhraní
type <interface-name> =
...
type <interface-name> =
interface
...
end
objekt výraz
{ new <type-name>
with
<value-or-member-definitions>
<interface-implementations>
}
{ new <type-name>
with
<value-or-member-definitions>
end
<interface-implementations>
}
implementace rozhraní
interface <interface-name>
with
<value-or-member-definitions>
interface <interface-name>
with
<value-or-member-definitions>
end
typ rozšíření
type <type-name>
with
<value-or-member-definitions>
type <type-name>
with
<value-or-member-definitions>
end