روبي المدى (المدى)
مجموعة (مجموعة) في كل مكان: الألف إلى الياء، 0 إلى 9، وهلم جرا. روبي مجموعة الدعم، ويتيح لنا استخدام مجموعة من الطرق المختلفة:
- كما أن مجموعة من تسلسل
- كما أن مجموعة من الشروط
- كما تظهر مجموعة الفاصلة
كما أن مجموعة من تسلسل
وأعرب عن الاستخدام الأول والأكثر شيوعا من مجموعة متواليات. تسلسل لديه نقطة البداية ونقطة النهاية في تسلسل لإنتاج قيمة مستمرة.
يستخدم الياقوت'' .. '' و '' ... ''المشغل مجموعة لإنشاء هذه متواليات. شكلين خلق النطاق الذي يحتوي على أعلى قيمة من مجموعة من ثلاث نقاط محددة لإنشاء نموذج التي لا تحتوي على أقصى قدر من القيمة المحددة.
(1..5) #==> 1, 2, 3, 4, 5 (1...5) #==> 1, 2, 3, 4 ('a'..'d') #==> 'a', 'b', 'c', 'd'
1..100 التسلسل هو كائننطاقتحتوي على اثنين من وجوهFixnum.إذا لزم الأمر، يمكنك استخدام الأسلوب إلىto_aمجموعة إلى القائمة. جرب الأمثلة التالية:
#!/usr/bin/ruby $, =", " # Array 值分隔符 range1 = (1..10).to_a range2 = ('bar'..'bat').to_a puts "#{range1}" puts "#{range2}"
تشغيل إخراج المثال أعلاه هو:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
بحيث يمكنك تحقيق مجموعة من اجتياز أساليبها، ويمكنك التحقق من محتوياتها في عدة طرق:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- # 指定范围 digits = 0..9 puts digits.include?(5) ret = digits.min puts "最小值为 #{ret}" ret = digits.max puts "最大值为 #{ret}" ret = digits.reject {|i| i < 5 } puts "不符合条件的有 #{ret}" digits.each do |digit| puts "在循环中 #{digit}" end
تشغيل إخراج المثال أعلاه هو:
true 最小值为 0 最大值为 9 不符合条件的有 [5, 6, 7, 8, 9] 在循环中 0 在循环中 1 在循环中 2 在循环中 3 在循环中 4 在循环中 5 在循环中 6 在循环中 7 在循环中 8 在循环中 9
كما أن مجموعة من الشروط
نطاقات أيضا أن تستخدم التعبير الشرطي. على سبيل المثال، التعليمة البرمجية التالية جزء الطباعة من سطر الإدخال القياسية، حيث كل من الصفوف الأولى من جمع يحتوي على كلمةبداية السطرالأخير يحتوي على كلمةالنهاية:
while gets print if /start/../end/ end
مجموعة يمكن استخدامها في بيان القضية:
#!/usr/bin/ruby # -*- coding: UTF-8 -*- score = 70 result = case score when 0..40 "糟糕的分数" when 41..60 "快要及格" when 61..70 "及格分数" when 71..100 "良好分数" else "错误的分数" end puts result
تشغيل إخراج المثال أعلاه هو:
及格分数
كما تظهر مجموعة الفاصلة
وأخيرا، استخدام نمط كشف الفاصل: التحقق من القيمة المحددة ضمن النطاق المحدد. === تحتاج إلى استخدام عامل التشغيل المساواة لإكمال العملية الحسابية.
#!/usr/bin/ruby # -*- coding: UTF-8 -*- if ((1..10) === 5) puts "5 在 (1..10)" end if (('a'..'j') === 'c') puts "c 在 ('a'..'j')" end if (('a'..'j') === 'z') puts "z 在 ('a'..'j')" end
تشغيل إخراج المثال أعلاه هو:
5 在 (1..10) c 在 ('a'..'j')