Ayrıntılı Sözdizimi

F# dilinde birçok yapı için kullanılabilen iki söz dizimi biçimi vardır: ayrıntılı söz dizimi ve basit söz dizimi. Ayrıntılı söz dizimi yaygın olarak kullanılmaz, ancak girintiye daha az duyarlı olma avantajına sahiptir. Basit söz dizimi daha kısadır ve , end, inve gibi beginek anahtar sözcükler yerine yapıların başına ve sonuna işaret etmek için girinti kullanır. Varsayılan söz dizimi basit söz dizimidir. Bu konu başlığında, basit söz dizimi etkinleştirilmediğinde F# yapılarının söz dizimi açıklanmaktadır. Ayrıntılı söz dizimi her zaman etkindir, bu nedenle basit söz dizimlerini etkinleştirseniz bile, bazı yapılar için ayrıntılı söz dizimi kullanmaya devam edebilirsiniz.

Yapı Tablosu

Aşağıdaki tabloda, iki form arasında fark olan bağlamlardaki F# dil yapıları için basit ve ayrıntılı söz dizimi gösterilmektedir. Bu tabloda, açılı ayraçlar (<>) kullanıcı tarafından sağlanan söz dizimi öğelerini içine alır. Bu yapılarda kullanılan söz dizimi hakkında daha ayrıntılı bilgi için her dil yapısının belgelerine bakın.

Dil yapısı Basit söz dizimi Ayrıntılı söz dizimi
bileşik ifadeler
<expression1>
<expression2>
<expression1>; <expression2>

iç içe bağlamalar 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
kod bloğu
(
    <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
Kayıt
type <record-name> =
    {
        <field-declarations>
    }
    <value-or-member-definitions>
type <record-name> =
    {
        <field-declarations>
    }
    with
        <value-or-member-definitions>
    end
Sınıfı
type <class-name>(<params>) =
    ...
type <class-name>(<params>) =
    class
        ...
    end
yapı
[<StructAttribute>]
type <structure-name> =
    ...
type <structure-name> =
    struct
        ...
    end
ayrımcı birleşim
type <union-name> =
    | ...
    | ...
    ...
    <value-or-member definitions>
type <union-name> =
    | ...
    | ...
    ...
    with
        <value-or-member-definitions>
    end
arabirim
type <interface-name> =
    ...
type <interface-name> =
    interface
        ...
    end
nesne ifadesi
{ new <type-name>
    with
        <value-or-member-definitions>
        <interface-implementations>
}
{ new <type-name>
    with
        <value-or-member-definitions>
    end
    <interface-implementations>
}
arabirim uygulaması
interface <interface-name>
    with
        <value-or-member-definitions>
interface <interface-name>
    with
        <value-or-member-definitions>
    end
tür uzantısı
type <type-name>
    with
        <value-or-member-definitions>
type <type-name>
    with
        <value-or-member-definitions>
    end
modül
module <module-name> =
    ...
module <module-name> =
    begin
        ...
    end

Ayrıca bkz.