اختبار لمتغيرات غير محددة في روبي ل لا جافا سكريبت؟
-
23-08-2019 - |
سؤال
في جافا سكريبت، هناك طريقة مفيدة لاختبار متغير لم يتم تعريفه أبدا في أي نقطة معينة. على سبيل المثال، سيعود المقتطف التالي من التعليمات البرمجية صحيح إذا كان المتغير بوب. لم يتم تعريفه:
typeof(bob)=='undefined'
كيف يمكنني إنجاز نفس الاختبار في روبي؟
تحرير: أبحث عن اختبار مدمج بنفس القدر في الطبيعة. لقد جاءت مع بعض التقريبات المحرجة باستخدام الاستثناءات، ولكن تلك ليست جميلة جدا!
المحلول
defined?(variable_name)
irb(main):004:0> defined?(foo)
=> nil
irb(main):005:0> foo = 1
=> 1
irb(main):006:0> defined?(foo)
=> "local-variable"
هنا جيدة اكتب عليه.
نصائح أخرى
defined?
هي وظيفة تعود NIL إذا كان العنصر غير محدد.
defined? somevar
=> nil
somevar = 12
defined? somevar
=> "local-variable"
وبالتالي:
if defined?(somevar)
do_something
end
ضع في اعتبارك أن تحديد؟ إرجاع سلسلة إذا تم تعريف المتغير، لا شيء إذا لم يكن الأمر كذلك، لذلك استخدم التحقق الشرطي على نتائجه. أعتقد أن بناء الجملة يلمح إلى أن يعيد منطقية.
جميع حالات الاستخدام:
defined? ur_variable
=> nil
ur_variable= 12
defined? ur_variable
=> "local-variable"
another_variable = nil
defined? another_variable
=> "local-variable"
يمكن أيضا اختبار هذه الطريقة.
if somevar.nil
# not set do something
else
# is set do something else
end
لا تنتمي إلى StackOverflow