6.1 バイト
すべての数値は、以下のメソッドに応答します。
bytes
kilobytes
megabytes
gigabytes
terabytes
petabytes
exabytes
これらのメソッドは、対応するバイト数を返すときに1024の倍数を使います。
2.kilobytes # => 2048
3.megabytes # => 3145728
3.5.gigabytes # => 3758096384
-4.exabytes # => -4611686018427387904
これらのメソッドには単数形の別名もあります。
1.megabyte # => 1048576
定義はactive_support/core_ext/numeric/bytes.rbにあります。
出典
Numeric クラス
数値を表す抽象クラスです。
Integer や Float などの数値クラスは Numeric のサブクラスとして実装されています。
演算や比較を行うメソッド(+, -, *, /, <=>)は Numeric のサブクラスで定義されます。Numeric で定義されているメソッドは、サブクラスで提供されているメソッド (+, -, *, /, %) を利用して定義されるものがほとんどです。つまり Numeric で定義されているメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれば、数値クラスのそのほかのメソッドが適切に定義されることを意図して提供されています。
出典
感想
- バイトを表すことができるのは楽でよかった。
- Numeric クラスを知ることができてよかった。intの上のクラスがあるとは知らなかった。