Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby Infinity:작동 방식 및 중요한 이유

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의 무한대, 그것이 무엇인지, 표시될 수 있는 위치 및 사용 방법에 대해 배웠습니다.

이 기사를 공유하여 더 많은 사람들이 혜택을 받을 수 있도록 하십시오.

읽어주셔서 감사합니다!