Latest web development tutorials

루비 범위 (범위)

그래서에, z를 0 통해 9과 : 범위 (범위)는 어디 에나있다. 루비 지원 범위 및 다른 방법의 범위를 사용할 수있게 해준다 :

  • 일련의 범위로서
  • 조건의 범위로
  • 간격의 범위로서

일련의 범위로서

범위의 첫 번째이자 가장 일반적인 용도는 시퀀스를 나타낸다. 시퀀스는 시작 포인트와 연속적인 값을 생성하기 위해 일련의 끝 지점을 갖는다.

루비는이 시퀀스를 만드는''.. ''과 ''... ''범위연산자를 사용합니다. 두 가지 형태가 지정된 최대 값을 포함하지 않는 형태를 만들기 위해 지정된 3 점 범위의 최대 값을 포함하는 범위를 생성한다.

(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

범위는 case 문에서 사용할 수 있습니다 :

#!/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')