روبي المصطلحات السؤال:هل هذا إعلان روبي, تعريف و مهمة في نفس الوقت ؟

StackOverflow https://stackoverflow.com/questions/672135

سؤال

إذا قلت:

x = "abc"

هذا يبدو وكأنه إعلان التعريف و مهمة في نفس الوقت ، بغض النظر عما إذا قلت أي شيء عن x في البرنامج من قبل.

هل هذا صحيح ؟

أنا لست متأكدا من المصطلحات الصحيحة في روبي على الإعلانات, تعريفات assigments أو حتى إذا كان هناك تمييز بين هذه الأشياء بسبب ديناميكية الكتابة في روبي.

@tg:بخصوص النقطة رقم 2:حتى إذا كان x موجودة قبل x = "abc" البيان لا يمكنك استدعاء x = "abc" بيان تعريف/إعادة تعريف ؟

هل كانت مفيدة؟

المحلول

  1. إعلان: لا.
    فإنه لا معنى للحديث عن معلنا المتغيرات في روبي, لأنه لا يوجد شيء مماثل إعلان في اللغات.لغات تصميم المجمعين قد الإعلانات لأن المترجم يجب أن تعرف مسبقا مدى كبير أنواع البيانات وكيفية الوصول إلى أجزاء مختلفة من بينها. على سبيل المثال, إذا قلت في C:

    int *i;
    

    ثم المترجم يعرف أنه في مكان ما هناك بعض الذاكرة جانبا لأنني و كما كبيرة كما أنها يحتاج إلى عقد مؤشر إلى int.في نهاية المطاف رابط سيتم ربط جميع الإشارات إلى i معا, ولكن على الأقل المترجم يعلم أنها هناك في مكان ما.

  2. التعريف: ربما.
    A تعريف عادة تعيين قيمة أولية عن شيء (على الأقل في مطلع على لغات مترجمة).إذا x لم تكن موجودة من قبل x = "abc" البيان, ثم أعتقد أنك يمكن أن نطلق على هذا التعريف ، لأن ذلك هو عندما روبي إلى تعيين قيمة الرمز x.

    مرة أخرى, على الرغم من ، تعريف هو محدد الأجل أن الناس عادة ما تستخدم لتمييز الأولي ثابت إسناد قيمة إلى بعض متغير من متغير إعلان.في روبي, لم يكن لديك هذا النوع من البيان.عادة أقول متغير تعريف إذا تم تعيين قيمة في مكان ما في النطاق الحالي و تقول انها غير معرف إذا لم.

    عادة لا نتحدث عن ذلك بعد تعريف, لأن في روبي فقط المبالغ المهمة.لا يوجد السياق الخاص التي من شأنها أن تبرر تقول تعريف وكأنه لا يوجد في اللغات الأخرى.

    وهو ما يقودنا إلى...

  3. المهمة: نعم.
    أنت بالتأكيد يمكن أن نسمي هذا المهمة, لأنه يتم تعيين القيمة إلى رمز x.لا أعتقد أن أحدا سوف نختلف مع هذا.

نصائح أخرى

والى حد كبير. وإذا، على السطر التالي جدا، يمكنك القيام:

x = 1

وبعد ذلك قمت فقط <م> إعادة تعريف عليه، فضلا عن تعيينه (لها الآن عدد صحيح، وليس سلسلة). بطة الكتابة مختلفة جدا عن ما كنت وربما تستخدم ل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top