Ruby의 무한대란 무엇입니까?
시작은 있지만 끝은 없는 것입니다.
Ruby에서는 이 무한대 개념을 표현할 수 있습니다. Float::INFINITY
일정합니다.
이것이 얼마나 유용한지 궁금하실 것입니다.
예를 들어 설명하겠습니다!
산술 연산의 결과로서의 무한대
Ruby는 Infinity
를 반환합니다. 특정 수학 연산의 결과로 개체.
예를 들어 :
"0으로 나누기" 오류에 익숙할 것입니다.
여기 :
1/0 # ZeroDivisionError: divided by 0
하지만…
float를 사용하면 다른 결과를 얻을 수 있습니다.
1/0.0 # Infinity
Infinity
!
하지만 그게 다가 아닙니다.
0
나누기를 시도하면 0.0
기준 , 당신은 또 다른 특별한 가치를 얻을.
살펴보기 :
0/0.0 # NaN
이 NaN은 무엇입니까?
"Not a Number"를 의미하며 내가 아는 한 Ruby에서 이 값을 찾을 수 있는 유일한 곳입니다.
이게 왜 그래요?
부동 소수점 연산의 작동 방식을 설명하는 IEEE 754 사양의 일부입니다.
그런데 몇 가지 관련 방법이 있습니다. :
nan?
finite?
infinite?
이 방법을 사용하여 특수 값을 확인할 수 있습니다.
이 메서드는 Float에서 사용할 수 있습니다.
Ruby 2.4부터 finite?
도 사용할 수 있습니다. &infinite?
정수로.
무한 범위를 만드는 방법
알겠습니다.
재미있었습니다... 더 많은 예시를 보시죠.
이제 Ranges와 함께하세요!
무한 범위입니다 :
(1..Float::INFINITY).take(10) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
범위의 끝을 미리 알지 못하는 경우에 유용할 수 있습니다.
한 가지 문제...
시작 값으로 숫자만 사용할 수 있습니다.
예 :
("a"..Float::INFINITY) # ArgumentError: bad value for range
해결책은 무엇입니까?
Ruby 2.6을 사용하면 이 작업을 수행할 수 있습니다. :
("a"..).take(5) # ["a", "b", "c", "d", "e"]
예, 그것은 실수가 아닙니다! 이 범위에는 종료 값이 없으며 "a"
의 시작 값만 있습니다. , 두 개의 점 ..
끝없는 범위를 만들기 위해.
이것은 새로운 구문입니다.
이 기능을 사용하려면 Ruby 2.6 이상을 사용하세요.
최대값과 최소값으로 무한대
Infinity
의 또 다른 실제 사용 ?
음...
가장 큰 것입니다(Infinity
) 및 최소(-Infinity
) ) 루비의 숫자입니다.
이것을 시작 값으로 사용할 수 있습니다.
예시 :
def smallest_percent_size(style, ary_size) @smallest_percent ||= Float::INFINITY if style == :percent && ary_size < @smallest_percent @smallest_percent = ary_size end @smallest_percent end
이 코드는 오픈 소스 프로젝트인 Rubocop에서 가져온 것입니다.
작동 방식은 다음과 같습니다. :
가장 작은 배열 크기를 찾으려고 하지만 nil
을 사용하기 때문에 시작 값이 필요합니다. 오류가 발생합니다.
큰 숫자를 입력할 수 있습니다. 그리고 충분하기를 바랍니다.
또는 Float::INFINITY
를 사용할 수 있습니다. , 그것이 가능한 가장 큰 숫자라는 것을 알고 있습니다.
요약
Ruby의 무한대, 그것이 무엇인지, 표시될 수 있는 위치 및 사용 방법에 대해 배웠습니다.
이 기사를 공유하여 더 많은 사람들이 혜택을 받을 수 있도록 하십시오.
읽어주셔서 감사합니다!