program story

Integer와 Fixnum의 차이점은 무엇입니까?

inputbox 2020. 12. 8. 08:03
반응형

Integer와 Fixnum의 차이점은 무엇입니까?


Fixnum클래스가 클래스에서 상속 된다는 것을 알고 Integer있습니다. 그러나 그들 사이의 실제 차이점은 무엇입니까? 때때로를 사용 Fixnum하고 때로는 Integer대신 사용하는 사용 사례가 있습니까?


당신은 결코 "사용"하지 않습니다 Integer. 자식 ( FixnumBignum)에 메서드 를 부여하는 작업을 수행하는 추상 클래스입니다 . 사실상 어떤 상황에서도 객체의 클래스를 요청하고 그것이 Integer.


업데이트 : Ruby 2.4부터 FixnumBignum클래스는 사라졌고 Integer. 똑같은 최적화가 여전히 존재하지만, 프로그래머에게 보이지 않는 "적절한"컴파일러 최적화로 취급됩니다.


이것은 다소 혼란 스럽습니다. Integer는 IS 실제 당신에 대해 생각해야한다는 클래스. Fixnum기본적으로 처음부터 프로그래머가 볼 수 없었던 성능 최적화입니다. (이를 YARV의 플로 넘 (flonums)과 비교하십시오. 이는 전적으로 VM 내부에서 최적화로 구현되고 프로그래머에게 노출되지 않습니다.)

기본적으로 Fixnums는 빠르고 Bignums는 느리며 구현은 자동으로 이들간에 앞뒤로 전환됩니다. 당신은 그것들 중 하나를 직접 요청하지 않으며, 정수가 a의 제한된 크기에 맞는지 여부에 따라 하나 또는 다른 것을 얻을 것 Fixnum입니다.

참고 URL : https://stackoverflow.com/questions/21372649/what-is-the-difference-between-integer-and-fixnum

반응형