freeCodeCamp/guide/arabic/clojure/create-local-variables-with.../index.md

3.0 KiB
Raw Blame History

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

:rocket: IDEOne ذلك!

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

:rocket: IDEOne ذلك!

اه! هذا لا يضيف 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

:rocket: IDEOne ذلك!

| :point_left: السابق :book: الصفحة الرئيسية :book: | التالى :point_right: |
| شرطي | جدول المحتويات | حلقة وتكرار |