تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
#F - التصريح عن التعابير - الكلمة المحجوزة let
#1
كاتب الموضوع : 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
}}}}
تم الشكر بواسطة:
#2
مرفق نص الموضوع كاملا

للاستزادة راجع موقع msdn الخاص بمايكروسوفت


الملفات المرفقة
.pdf   let.pdf (الحجم : 117.47 ك ب / التحميلات : 17)
}}}}
تم الشكر بواسطة:


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم