التصريح عن التعابير let


الكاتب الأخ : samerselo

تربط متغير بقيمة أو وظيفة حيث نستخدم الكلمة المحجوزة let لتحدد اسم لوظيفة أو لقيمة. ويكون الشكل العام لها كما يلي

رمز برمجي:
// ربط قيمة
let identifier-or-pattern [: type] =
   expression
body-expression
// ربط وظيفة
let identifier parameter-list [: return-type ] =
   expression
body-expression

تستخدم let لربط قيمة تعبير أو وظيفة لاسم أو أكثر ويكون أبسط شكل لاستخدامها هو ربط اسم مع قيمة بسيطة

رمز برمجي:
let samer = 10

إذا قسمت تعبير لمتغير على أكثر من سطر يجب عليك توثيق كل سطر في التعبير كما في المثال

رمز برمجي:
let someVeryLongIdentifier =
    // Note indentation below.
    3 * 4 + 5 * 6

بدلا من استخدام اسم واحد لمتغير واحد يمكننا استخدام الأنببة كما في المثال

رمز برمجي:
let i, j, k = (1, 2, 3)

جسم التعبير يجب أن يتم صفه على الأسطر التالية مع الحرف الأول لاسم ذلك التعبير كما في المثال

رمز برمجي:
let result =
    let i, j, k = (1, 2, 3)
    // Body expression: 
    i + 2*j + 3*k

يمكن ظهور تعبير let في العديد من الأماكن في البرنامج على مستوى الموديول أو الفئة أو في المجالات المحدودة مثل الوظائف.

عندما يستخدم لتحديد اسم لوظيفة يتبع نفس الأسلوب السابق عدا أنه يتم إضافة المحددات للتعبير كم في المثال

رمز برمجي:
    let function1 a =
    a + 1

وتعبير let يعطي النتيجة الكاملة لجميع التعابير التي تلحقه لهذا ففي الكود التالي تكون قيمة result هي 300 كنتيجة

رمز برمجي:
let result =
    let function3 (a, b) = a + b
    100 * function3 (1, 2)

كما يمكنك التصريح عن أنواع المحددات باستخدام : متبوعا باسم النوع وكلها مضمنة ضمن أقواس كما يمكنك تحديد نوع القيمة المعادة بإضافة : والنوع بعد المحدد الأخير وعندما لا يتم تحديد النوع يستخدم الاستدلال المحلي على النوع

رمز برمجي:
let function1 (a: int) : int = a + 1

كما يمكن استخدامها في التصريح عن الفئات ولكن ليس في التراكيب structure أو السجلات Record. ولاستخدامها في التصريح عن فئة يجب أن يكون للفئة باني رئيسي حيث تظهر محددات الباني بعد اسم الفئة ويستخدم تعبير 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

كما يمكن تعريف واصفات attributes لتعبير let على المستوى الأعلى في الموديول كما في المثال

رمز برمجي:
[<Obsolete>]
let function1 x y = x + y
  1. لا توجد تعليقات حتى الأن.
  1. No trackbacks yet.

شاركنا برأيك ,لكي نرقى بالمدونة,يمكنك أضافة تعليق عن طريق حسابك في Facebook

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s

%d مدونون معجبون بهذه: