Ruby中的Range對(duì)象學(xué)習(xí)筆記
Range是范圍對(duì)象的類,定義的時(shí)候可以使用范圍操作符“..”或者“...”,“..”生成的范圍對(duì)象包括起點(diǎn)和終點(diǎn),“...”生成的范圍對(duì)象不包括起點(diǎn)和終點(diǎn),范圍是由是一序列有順序、有規(guī)律的元素對(duì)象組成,任何有順序,有規(guī)律的一組對(duì)象,都可以用Range對(duì)象來(lái)定義,如數(shù)字、字母、字符串、甚至?xí)r間
1、Range對(duì)象的定義
r1=1..5 #定義范圍對(duì)象r1,包括元素1,2,3,4,5
r2=Range.new(1,5) #等價(jià)與1..5
r3=1...5 #定義范圍對(duì)象r3,包括元素2,3,4
r4=Range.new(1,5,true) #等價(jià)與1...5
2、Range對(duì)象的妙用
r=rand*100
rf=format('%.2f',r)
case r
when 90..100
puts "得分:#{rf} 成績(jī):優(yōu)秀"
when 70..90
puts "得分:#{rf} 成績(jī):良好"
when 50..70
puts "得分:#{rf} 成績(jī):合格"
else
puts "得分:#{rf} 成績(jī):不合格"
end
通常我們進(jìn)行一個(gè)時(shí)間的遍歷是非常麻煩的一個(gè)過(guò)程,但是有了Range,這將會(huì)十分簡(jiǎn)單,如下示例代碼:
#遍歷2013-01-01至2013-02-28每一天,對(duì)象是Date
begin_date = Date.parse '2013-01-01'
end_date = Date.parse '2013-02-28'
r1=begin_date .. end_date
r1.each{|date| puts date}
#遍歷abc-xyz所有字符串
r2='abc' .. 'xyz'
r2.each{|str| puts str}
#判斷某個(gè)元素是否在某個(gè)范圍內(nèi)
r3='a'..'z'
puts r3==='A' #false
puts r3.include?'k' #true
puts r3.min #a
puts r3.max #z
puts r3.first(3) #a,b,c
puts r3.last(4) #w,x,y,z
相關(guān)文章
Ruby實(shí)現(xiàn)插入排序算法及進(jìn)階的二路插入排序代碼示例
插入排序即是把已有的有序序列從后向前掃描插入元素,數(shù)值大的向后移動(dòng),這里我們就來(lái)看一下使用Ruby實(shí)現(xiàn)插入排序算法及進(jìn)階的二路插入排序代碼示例2016-06-06Ruby數(shù)組(Array)學(xué)習(xí)筆記
這篇文章主要介紹了Ruby數(shù)組(Array)學(xué)習(xí)筆記,本文講解了Ruby中數(shù)組的定義、數(shù)組元素的訪問、數(shù)組的操作、數(shù)組的運(yùn)算等內(nèi)容,需要的朋友可以參考下2014-11-11Ruby中用線程實(shí)現(xiàn)經(jīng)典的生產(chǎn)者消費(fèi)者問題代碼實(shí)例
這篇文章主要介紹了Ruby中用線程實(shí)現(xiàn)經(jīng)典的生產(chǎn)者消費(fèi)者問題代碼實(shí)例,本文直接給出實(shí)現(xiàn)代碼和運(yùn)行效果,需要的朋友可以參考下2015-01-01Ruby環(huán)境下安裝使用bundler來(lái)管理多版本的gem
這篇文章主要介紹了Ruby環(huán)境下安裝使用bundler來(lái)管理多版本的gem的方法,舉了Ruby On Rails中的應(yīng)用實(shí)例來(lái)進(jìn)行演示,需要的朋友可以參考下2016-06-06在阿里云 (aliyun) 服務(wù)器上搭建Ruby On Rails環(huán)境
最近總是在配置阿里云的服務(wù)器,遇到不少問題,現(xiàn)小結(jié)一下,供大家參考~~2014-06-06ruby元編程之創(chuàng)建自己的動(dòng)態(tài)方法
這篇文章主要介紹了ruby元編程之創(chuàng)建自己的動(dòng)態(tài)方法,本文講解使用method_missing和respond_to?創(chuàng)建自己的動(dòng)態(tài)方法,需要的朋友可以參考下2015-05-05