3.0 KiB
title | localeTitle |
---|---|
Clojure Create Local Variables with Let | Clojure إنشاء متغيرات محلية مع دعونا |
let
جزء أساسي من Clojure. بينما يخلق def
متغيرًا عالميًا ، let
بإنشاء متغير محلي.
(def x 5) (println x) ; => 5 ; nil (let [x 2] (println x)) ; => 2 ; nil (println x) ; => 5 ; nil
x
في هذا المثال لن يتم تغييره في الواقع. x
يشير فقط إلى شيء مختلف داخل لدينا let
ملزمة. هذا يمكن أن يكون وسيلة مفيدة لتجنب التكرار داخل وظيفة.
هذا مفيد بشكل لا يصدق. وجود العديد من المتغيرات العالمية يمكن أن يؤدي إلى أخطاء سيئة وسلوك غير مقصود.
(def x 5) (defn add-5 [y] (+ xy)) (add-5 5) ; => 10 (defn change-x [] (def x 6)) (change-x) ; => nil (add-5 5) ; => 11
اه! هذا لا يضيف 5 بعد الآن! بطبيعة الحال ، هذا المثال سخيف قليلاً ، ولكن استخدام الكثير من المتغيرات العالمية يمكن أن يؤدي إلى خلل مروع مثل هذا.
ملاحظة: نحن لا نعيد تعيين x
هنا ، كما هو الحال في لغة C-like. نحن فقط بصدد إنشاء متغير جديد يحدث أيضًا باسم x. هذه فكرة سيئة للغاية .
ربط متعددة
let
أيضا تحديد متغيرات متعددة في وقت واحد ، ويمكن أن يعين المتغيرات على التعبيرات.
(let [spam "foo" ham (str "b" "ar")] ; str is a function that concatenates strings (println spam ham)) ; or converts variables into strings. ; => foo bar ; nil
| السابق الصفحة الرئيسية | التالى |
| شرطي | جدول المحتويات | حلقة وتكرار |