Sdílet prostřednictvím


Podrobná syntaxe (F#)

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

modul

module <module-name> =
    ...
module <module-name> =
    begin
        ...
    end

Viz také

Koncepty

Pravidla formátování kódu (F#)

Další zdroje

Referenční dokumentace jazyka F#

Direktivy kompilátoru (F#)