Ruby range


Release date:2023-10-28 Update date:2023-10-28 Editor:admin View counts:397

Label:

Ruby range

Ranges (Range) are everywhere: a to z, 0 to 9, and so on. Ruby supports scope and allows us to use scope in different ways:

  • As the range of a sequence

  • Scope as a condition

  • The range used as an interval

As the range of a sequence

The first and most common use of ranges is to express sequences. A sequence has a starting point, an end point, and a way to generate continuous values in the sequence.

Ruby usage ''..'' and ''...'' the range operator creates these sequences. The two-point form creates a range that contains the specified maximum value, and the three-point form creates a range that does not contain the specified maximum value.

(1..5)#==> 1, 2, 3, 4, 5(1...5)#==> 1, 2, 3, 4('a'..'d')#==> 'a', 'b',
'c', 'd'

Sequence 1. 100 is a Range object that contains two Fixnum a reference to the object. If necessary, you can use the to_a method to convert the scope to a list. Try the following example:

Example

#!/usr/bin/ruby$,=","#Array
Value separatorrange1=(1..10).to_arange2=('bar'..'bat').to_aputs"#{range1}"puts"#{range2}"

The output of the above instance is as follows:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
["bar", "bas", "bat"]

Scopes implement methods that allow you to traverse them, and you can check their contents in a number of ways:

Example

#/ Usr/bin/ruby # - * - coding: UTF-8
-*-#Specify a range of digits=0.9putsdigits. include? (5) Ret=digits. inputs "The minimum value is
#{ret} "ret=digits. maxputs" The maximum value is
#{ret} "ret=digits. subject { | i | i<5} puts" Those that do not meet the conditions are
#{ret} "digits. eachdo | digit | puts" in loop # {digit} "end

The output of the above instance is as follows:

True
The minimum value is 0
Maximum value is 9
Those that do not meet the conditions are [5, 6, 7, 8, 9]
In loop 0
In loop 1
In loop 2
In loop 3
In loop 4
In loop 5
In loop 6
In loop 7
In loop 8
In loop 9

Scope as a condition

Ranges can also be used as conditional expressions. For example, the following code snippet prints lines from standard input, where the first line of each collection contains words start ,the last line contains words end. :

whilegetsprintif/start/../end/end

The range can be used in case statement:

Example

#/ Usr/bin/ruby # - * - coding: UTF-8
-*-Score=70result=casescorewhen0.40 "Bad score" when41.. 60 "
Almost passing" when61.. 70 "Passing score" when71.. 100 "Good score" else "Wrong score" endputsresult

The output of the above instance is as follows:

Passing score

The range used as an interval

The last use of a range is interval detection: to check whether the specified value is within the specified range. Need to use === equalityoperator to complete the calculation.

Example

#!/usr/bin/ruby#-*- coding: UTF-8 -*-if((1..10)===5)puts"5 in
(1..10)"endif(('a'..'j')==='c')puts"c in
('a'..'j')"endif(('a'..'j')==='z')puts"z in ('a'..'j')"end

The output of the above instance is as follows:

5 in (1..10)
c in ('a'..'j')

Powered by TorCMS (https://github.com/bukun/TorCMS).