OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

المتغيرات المحلية

في النصوص التي كتبناها حتى الآن ، كانت جميع المتغيرات (بما في ذلك الثوابت) المتغيرات العالمية. المتغيرات العالمية تحافظ على وجودها في جميع أنحاء البرنامج. هذا جيد للعديد من الأشياء ، لكنه قد يعقد في بعض الأحيان استخدام وظائف الصدفة. وظائف الغلاف الداخلي ، غالبًا ما يكون من المستحسن أن يكون لديك المتغيرات المحلية. لا يمكن الوصول إلى المتغيرات المحلية إلا داخل دالة الصدفة التي يتم تعريفها فيها وتتوقف عن الوجود بمجرد إنهاء وظيفة الصدفة.

يسمح وجود المتغيرات المحلية للمبرمج باستخدام متغيرات بأسماء قد تكون موجودة بالفعل ، إما في البرنامج النصي بشكل عام أو في وظائف shell الأخرى ، دون الحاجة إلى القلق بشأن تعارض الأسماء المحتمل.

صورة

فيما يلي مثال على برنامج نصي يوضح كيفية تعريف المتغيرات المحلية واستخدامها:


#! / بن / باش


# local-vars: نص لتوضيح المتغيرات المحلية

#! / بن / باش


# local-vars: نص لتوضيح المتغيرات المحلية


فو = 0

# المتغير العام foo

فو = 0


وظيفة_1 () {

local foo # المتغير foo المحلي إلى funct_1 foo = 1

صدى "funct_1: foo = $ foo"

}


وظيفة_2 () {

local foo # المتغير foo المحلي إلى funct_2 foo = 2

صدى "funct_2: foo = $ foo"

}


صدى "global: foo = $ foo" funct_1

وظيفة_1 () {

local foo # المتغير foo المحلي إلى funct_1 foo = 1

صدى "funct_1: foo = $ foo"

}


وظيفة_2 () {

local foo # المتغير foo المحلي إلى funct_2 foo = 2

صدى "funct_2: foo = $ foo"

}


صدى "global: foo = $ foo" funct_1

المتغيرات المحلية


صدى "global: foo = $ foo" funct_2

صدى "global: foo = $ foo"

صدى "global: foo = $ foo" funct_2

صدى "global: foo = $ foo"


كما نرى ، يتم تعريف المتغيرات المحلية عن طريق تسبق اسم المتغير بالكلمة محلي. هذا يخلق متغيرًا محليًا لوظيفة shell التي يتم تعريفها فيه. بمجرد الخروج من دالة shell ، لم يعد المتغير موجودًا. عندما نقوم بتشغيل هذا البرنامج النصي ، نرى النتائج:



[me @ linuxbox ~] $ محلي فارز

عالمي: foo = 0 funct_1: foo = 1 عالمي: foo = 0 funct_2: foo = 2 عالمي: foo = 0

[me @ linuxbox ~] $ محلي فارز

عالمي: foo = 0 funct_1: foo = 1 عالمي: foo = 0 funct_2: foo = 2 عالمي: foo = 0


نرى أن إسناد القيم إلى المتغير المحلي فو داخل كلتا دالتَي الصدفة ليس له أي تأثير على قيمة فو تعريف خارج الوظائف.

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


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: