مطول بناء الجملة (F#)

هناك نموذجان لبناء الجملة متوفرة للعديد من بنيات في F# اللغة: بناء جملة مطول و بناء الجملة خفيفة . بناء الجملة مطول هو ليس كشائعة الاستخدام، ولكن له فوائد الآن أقل حساسة للمسافة البادئة. بناء الجملة خفيفة هو أقصر ويستخدم المسافة البادئة للإشارة بداية وإنهاء بنيات، بدلاً من كلمات أساسية إضافية مثل begin، end، in، وهكذا دواليك. بناء الجملة الافتراضي هو بناء الجملة خفيفة. Th هو يصف الموضوع بناء الجملة ل F# بناء متى بناء خفيفة هو غير ممكن. بناء جملة مطول هو دائماً ممكناً، حتى حتى إذا قمت بتمكين بناء جملة خفيفة، يمكن الاستمرار باستخدام بناء الجملة مطول لبعض بنيات. يمكنك يعطل بناء خفيفة بواسطة استخدام #light "off"التوجيه.

جدول بنيات

يعرض الجدول التالي في lightweight وبناء مطول بناء الجملة الخاص ب # اللغة في السياقات الموقع يوجد هو اختلاف بين النموذجين. في هذا الجدول، ضع أقواس زاوية (<>) عناصر بناء الجملة الموفر من قبل مستخدم. تشير إلى الوثائق الخاصة بكل لغة بناء على معلومات حول بناء الجملة التي يتم استخدامها داخل هذه بنيات مُفصل أكثر.

بناء اللغة

بناء الجملة خفيفة

مطول بناء الجملة

تعبيرات مركبة

<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

توحيد discriminated

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#)