2016-12-06 12 views
1

Почему функция размера рубина для номера, возвращающего выход, как это?Функция размера для ruby ​​Fixnum class

1000000.size    # => 8 
99999999999999999999.size # => 9 
+0

Это очень помогло бы разработчикам Ruby, если бы вы точно указали *, какую часть документации метода 'size' вы не понимаете, чтобы они могли улучшить ее для будущих читателей. –

ответ

4

Рубин внутренне использует две различные структуры для хранения целых чисел - Fixnum и Bignum. Первый используется для меньшего числа и отображает непосредственно на длинное целое число в архитектуре хоста. Он более быстрый и постоянный по размеру, но ограниченный тем, насколько он может хранить. Последний используется для хранения произвольно больших чисел, и его размер зависит от того, насколько велика цифра.

1000000.class    # => Fixnum 
99999999999999999999.class # => Bignum 

Преобразование сделано внутренне. На самом деле с ruby ​​2.4.0, будет только один класс - Integer.

+0

Можете ли вы рассказать мне, что такое действие, выполняемое функцией размера? –

+0

@Vivakkumar в основном говорит, сколько памяти (в байтах) используется для хранения номера. – ndn

+0

Является ли это возвратом побитового представления памяти? –

 Смежные вопросы

  • Нет связанных вопросов^_^