Rubyのオブジェクト・クラス・メソッド
前回までは配列について書いてきましたが、今回は用語について書いてみます(ノ)・ω・(ヾ)
オブジェクト(Object)とは
オブジェクト(Object)は文字通り「物(モノ)」を指します。例えばこの数字データは数値のオブジェクトです。
100
この文字データは文字列のオブジェクトです。
“こんにちは”
また、それぞれのオブジェクトには種類があります。それがクラスです。
クラス(class)とは
オブジェクトには「数値」「文字列」等の種類がありますが、この種類をクラス(class)といいます。数値のオブジェクトは正確には「数値クラスのオブジェクト」であり、文字列のブジェクとは「文字列クラス」のオブジェクトです。
オブジェクト | クラスの種類 | クラス名 |
---|---|---|
1 | 整数 | Integer※ |
1.0 | 浮動小数点数 | Float |
“こんにちは” | 文字列 | String |
[1,2,3,4,5] | 配列 | Array |
1..10 | 範囲 | Range |
※実際にはFixnumまたはBignumと表示されます。理由は後述します。
クラス名を調べる方法
classメソッドを使います(・ω・)ノ
x=10
puts(x.class)
Fixnum
整数クラスについて
整数クラスは正確にはFixnumとBignumに分かれますので、ある一定以上の整数になると自動的にBignumに切り替わります。試してみますと、
x=1
loop do
break if x.class==Bignum
puts(“#{x} ←#{x.class}”)
x*=10 #これは x=x*10 と等しい
end
puts(“#{x} ←#{x.class}に切り替わりました”)
1 ←Fixnum
10 ←Fixnum
100 ←Fixnum
1000 ←Fixnum
10000 ←Fixnum
100000 ←Fixnum
1000000 ←Fixnum
10000000 ←Fixnum
100000000 ←Fixnum
1000000000 ←Fixnum
10000000000 ←Fixnum
100000000000 ←Fixnum
1000000000000 ←Fixnum
10000000000000 ←Fixnum
100000000000000 ←Fixnum
1000000000000000 ←Fixnum
10000000000000000 ←Fixnum
100000000000000000 ←Fixnum
1000000000000000000 ←Fixnum
10000000000000000000 ←Bignumに切り替わりました
となります。よほどでかい整数でない限り大抵はFixnumですね(・ω・)
なお、整数クラス・浮動小数点数クラスは共に数値クラスのサブクラスになります。つまり数値クラスでもあり、整数クラスでもあるということです(・ω・)ノ
メソッドとは
メソッドは処理をひとまとめにしたものくらいの意味合いです。正確に定義すると混乱してしまうので深追いはしない(・ω・)
以下は使えそうなメソッドをひと通りまとめました(ノ)・ω・(ヾ)
整数・浮動小数点数の変換
to_i メソッド(浮動小数点→整数)、to_f メソッド(整数→小数点)を使います(・ω・)
x=1
puts(x)
y=x.to_f
puts(y)
z=y.to_i
puts(z)
1
1.0
1
なお、浮動小数点数を整数に変換すると、小数点以下は切り捨てとなります(´・ω・`)
x=9.99
puts(x.to_i)
3
四捨五入する
小数点以下の切り捨てではなく四捨五入とするには round メソッドを使います。
a=3.49999
b=3.5
puts(a.round)
puts(b.round)
3
4
0かどうか判定する
zero? メソッドを使います。数値0ならtrue、0以外の数値ならfalseとなります。
クラス | オブジェクト | zero?メソッド |
---|---|---|
数値 | 0 | true |
数値 | 1 | false |
文字列 | “0” | エラー |
x=0
y=1
puts(x.zero?)
puts(y.zero?)
true
false
0でないかの判定
nonzero? メソッドを使います。 数値0ならnil(オブジェクトが存在しないことを示す)、0以外の数値ならその数値となります。
クラス | オブジェクト | nonzero?メソッド |
数値 | 0 | nil |
数値 | 1 | 1 |
文字列 | “0” | エラー |
irbで「0.nonzero?」を実行するとnillが返されます。
ひとまずここまでにして次は文字列の操作について書きます(ノ)・ω・(ヾ)