ترك للربط (F#)

على ربط بإقران معرّف مع القيمة أو دالة. يمكنك استخدام letالكلمة الأساسية إلى يربط اسم إلى قيمة أو دالة.

// Binding a value:
let identifier-or-pattern [: type] =
   expression
body-expression
// Binding a function value:
let identifier parameter-list [: return-type ] =
   expression
body-expression

ملاحظات

letالكلمة الأساسية هو المستخدمة في التوثيق تعبيرات لتعريف قيم أو دالة قيم لواحد أو أكثر من الأسماء. أبسط نموذج من letالتعبير بربط اسم بالقيمة بسيطة، كـ يلي.

let i = 1

إذا قمت بتقسيم التعبير من المعرف باستخدام سطر جديد، يجب وضع مسافة بادئة كل سطر للتعبير، كما في ما يلي تعليمات برمجية.

let someVeryLongIdentifier =
    // Note indentation below.
    3 * 4 + 5 * 6

بدلاً من اسم فقط، نقش يحتوي على أسماء يمكن تحديد، على سبيل المثال، المجموعة، كـ في التعليمة البرمجية التالية.

let i, j, k = (1, 2, 3)

body-expressionهو تعبير بحيث يتم استخدام الأسماء. النص الأساسي التعبير يظهر تشغيل السطر الخاص به، تحريكها إلى السطر لأعلى تماما بالحرف أول في letالكلمة الأساسية:

let result =
    let i, j, k = (1, 2, 3)
    // Body expression: 
    i + 2*j + 3*k

letربط يمكن أن تظهر على المستوى وحدة نمطية? في تعريف نوع فئة، أو في المجالات المحلية، مثل في تعريف دالة. letربط أعلى المستوى في وحدة نمطية أو نوع فئة لا يحتاج إلى وجود تعبير النص أساسي، ولكن الأخرى مستويات نطاق، التعبير نص مطلوب. أن الأسماء المنضمة قابلة للاستخدام بعد النقطة من تعريف، ولكن ليس في أي لحظة قبل letيظهر ربط، ك هو هو موضح في التعليمة البرمجية التالية.

// Error:
printfn "%d" x  
let x = 100
// OK: 
printfn "%d" x

الربط دالة

روابط دالة تتبع القواعد لعمليات الربط للقيمة، إلا أن تضمين روابط دالة اسم الدالة والمعلمات، كما هو موضح فيما يلي تعليمات برمجية.

let function1 a =
    a + 1

بشكل عام، تكون معلمات الأنماط، مثل كـ نمط المجموعة:

let function2 (a, b) = a + b

letربط تعبير يقيم إلى الالقيمة أخير التعبير. ولذلك، في المثال التالي التعليمات البرمجية، القيمة resultهو محسوبة من 100 * function3 (1, 2)، التي يتم تقييمها إلى 300.

let result =
    let function3 (a, b) = a + b
    100 * function3 (1, 2)

نوع التعليقات التوضيحية

يمكنك تحديد أنواع للمعلمات بما في ذلك علامة نقطتين (:) المتبع اسم النوع، الجميع محاطة بأقواس. يمكنك أيضا تحديد نوع القيمة الإرجاع بإلحاق علامة النقطتين و نوع بعد معلمة الأخيرة. التعليقات التوضيحية نوع الكاملة ل function1، مع الإعداد الصحيحة كـ أنواع المعلمات، ستكون كـ يلي.

let function1 (a: int) : int = a + 1

عندما يكون هناك أي معلمة نوع صريح، اكتب الاستخراج هو المستخدمة لتحديد أنواع معلمات دالات. يمكن أن يتضمن ذلك auإلىmatically generalizing نوع معلمة إلى تكون عامة.

للمزيد من المعلومات، راجع تعميم تلقائي (F#) والاستخراج نوع (F#).

ترك للربط في فئات

letربط تظهر في نوع فئة وليس عن بنية أو سجل نوع. لاستخدام ترك بربط في نوع فئة، يجب أن يكون لدى الفئة أساسي الدالة الإنشائية. يجب أن تظهر معلمات الدالة الإنشائية بعد اسم نوع من فئة تعريف. letربط في نوع فئة تعريف حقول خاصة والأعضاء لتلك الفئة نوع و، معا مع doروابط في النوع، نماذج التعليمة البرمجية الخاصة بالاساسي المنشئ للنوع. إظهار أمثلة تعليمات برمجية التالية فئة MyClassخاصة بحقول field1و field2.

type MyClass(a) =
    let field1 = a
    let field2 = "text"
    do printfn "%d %s" field1 field2
    member this.F input =
        printfn "Field1 %d Field2 %s Input %A" field1 field2 input

النطاقات field1و field2تقتصر على نوع في التي تم تعريفها. لمزيد من المعلومات، راجع ترك للربط في فئات (F#).

معلمات نوع في ترك الربط

letربط على المستوى وحدة نمطية? في نوع أو حساب تعبير يمكن أن يكون نوع صريح المعلمات. السماح بربط في تعبير، مثل كـ داخل تعريف دالة، لا يمكن أن يحتوي معلمات نوع. لمزيد من المعلومات، راجع عام (F#).

ترك للسمات تشغيل الربط

يمكن تطبيق سمات إلى إلى p مستوى letالروابط في وحدة نمطية، كما هو مبين في تعليمات برمجية التالية.

[<Obsolete>]
let function1 x y = x + y

راجع أيضًا:

المرجع

الدالات (F#)

ترك للربط في فئات (F#)