سؤال

هل هناك أي سبب لاستخدام مشغل فاصلة العددية في أي مكان آخر غير الموجود for حلقه؟

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

المحلول

منذ Perl Scalar Comma هو "منفذ" لمشغل Comma C، هذه التعليقات ربما apropos:

مرة واحدة في حين، تجد نفسك في موقف يتوقع فيه C تعبير واحد، ولكن لديك شيئين تريد أن تقوله. الأكثر شيوعا (وفي الواقع المثال الشائع الوحيد) هو في for حلقة، وتحديدا التعبيرات الأولى والثالثة السيطرة. ماذا لو (على سبيل المثال) تريد أن يكون لديك حلقة i تحسب من 0 ل 10 في نفس الوقت j هو العد لأسفل من 10 ل 0?

لذلك، غريزة الخاص بك أنها مفيدة بشكل رئيسي في for الحلقات هي فكرة جيدة، كما أعتقد.

نصائح أخرى

أنا أستخدمها في بعض الأحيان في المشروط (تسمى في بعض الأحيان عن طريق الخطأ "ternary")، إذا كان الرمز أسهل في القراءة من كسره في حالة حقيقية إذا كان / آخر:

my $blah = condition() ? do_this(), do_that() : do_the_other_thing();

يمكن استخدامه أيضا في بعض التعبير حيث تكون النتيجة الأخيرة مهمة، كما هو الحال في grep التعبير، ولكن في هذه الحالة هو نفسه تماما كما لو تم استخدام فاصلة منقوطة:

my @results = grep { setup(), condition() } @list;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top