Ruby 教程
范圍(Range)無處不在:a 到 z、 0 到 9、等等。Ruby 支持范圍,并允許我們以不同的方式使用范圍:
范圍的第一個(gè)也是最常見的用途是表達(dá)序列。序列有一個(gè)起點(diǎn)、一個(gè)終點(diǎn)和一個(gè)在序列產(chǎn)生連續(xù)值的方式。
Ruby 使用 ''..'' 和 ''...'' 范圍運(yùn)算符創(chuàng)建這些序列。兩點(diǎn)形式創(chuàng)建一個(gè)包含指定的最高值的范圍,三點(diǎn)形式創(chuàng)建一個(gè)不包含指定的最高值的范圍。
序列 1..100 是一個(gè) Range 對(duì)象,包含了兩個(gè) Fixnum 對(duì)象的引用。如果需要,您可以使用 to_a 方法把范圍轉(zhuǎn)換為列表。嘗試下面的實(shí)例:
以上實(shí)例運(yùn)行輸出結(jié)果為:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ["bar", "bas", "bat"]
范圍實(shí)現(xiàn)了讓您可以遍歷它們的方法,您可以通過多種方式檢查它們的內(nèi)容:
以上實(shí)例運(yùn)行輸出結(jié)果為:
true 最小值為 0 最大值為 9 不符合條件的有 [5, 6, 7, 8, 9] 在循環(huán)中 0 在循環(huán)中 1 在循環(huán)中 2 在循環(huán)中 3 在循環(huán)中 4 在循環(huán)中 5 在循環(huán)中 6 在循環(huán)中 7 在循環(huán)中 8 在循環(huán)中 9
范圍也可以用作條件表達(dá)式。例如,下面的代碼片段從標(biāo)準(zhǔn)輸入打印行,其中每個(gè)集合的第一行包含單詞 start,最后一行包含單詞 end.:
范圍可以用在 case 語句中:
以上實(shí)例運(yùn)行輸出結(jié)果為:
及格分?jǐn)?shù)
范圍的最后一個(gè)用途是間隔檢測(cè):檢查指定值是否在指定的范圍內(nèi)。需要使用 === 相等運(yùn)算符來完成計(jì)算。
以上實(shí)例運(yùn)行輸出結(jié)果為:
5 在 (1..10) c 在 ('a'..'j')