Latest web development tutorials

روبي المدى (المدى)

مجموعة (مجموعة) في كل مكان: الألف إلى الياء، 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')