Rubyのクラス

本日は、Rubyに元々ある便利クラスについてでした。

8章、9章よりは全然分かりやすかった!フムフム、なーるほどと言う感じで、けっこうスイスイ使い方自体は理解できた(と思う)。
PHPを使っていたころは、あまり「PHPに元々あるクラス」と言うものを意識して利用したことがないので、おそらくたくさん便利な物があったのだろうと思う。勿体無いことをした...。ま、これから利用すればよいのです。
ガンガン良いソースを見て、良いソースを書くことが良いと思う。
たのしいRubyの練習問題を少しずつでもしっかりと理解しながら解こう!1日2問は継続して解いてみよう。

本日の講義で気になったことをメモ。


文字コードについて

日本語が利用できる文字コードは、大きく分けて4つある。
Shift_JIS, EUC-JP, ISO-2022-JP, UTF-8
だんだん UTF-8 が主流になりつつある!?
それは、UTF-8Unicode と言う「新しい国際的な文字コード規格」を利用しているからである。
例えば、中国と日本では「日」と言う同じ漢字を利用しています。
でも、Shift_JISと中国の従来文字コードでは、同じ「日」と言う漢字に違う数値を割り振っているため、統一性がありません。それを、「日」と言う漢字は、同じだから同じ数値を割り当てましょう。と言うのがUnicodeである。


○ __FILE__ と $0

__FILE__ は、実行しているファイルを示す。
$0 は、実行したコマンドを示す。


演算子はメソッドとしても利用できる。
前回のブログでも、少し触れたが、以下に実例を示す。


ポイントは↓の見方

c2 = c1 + 20
c2 ・・・ これは代入結果を入れる変数
c1 ・・・ これは、Testクラスのインスタンス(宣言されるとnumに10がセットされる)
+  ・・・ これがメソッド!
20 ・・・ これがメソッドの引数!(other)である。

一見すると、通常の足し算のようだが、全然見方が違うので注意!
これが、「Rubyでは演算子がメソッドで利用できる」と言うことである。


irb 補足
irb は、 ; で改行を表すことができる。


Rubyは大きな整数が扱える
CPUが32bitだと、32bit分の数値しか扱えないが、Rubyはメモリのある限り、大きな数値が扱える。
なので、 2の1000乗と言う大きな数値も扱える。

32bit CPUであれば、32bitで表現される整数が最も効率よく扱えるのは、

  • 2147483648〜2147483647の範囲の整数(つまり32bit符号付きの表現範囲)。


○妙な結果のプログラム

a = 0.1 + 0.2
p a #=> 0.3
b = (a == 0.3)
p b #=> false

上記のプログラムは、なぜfalseと返すのだろうか?
答えは、「プログラムはなぜ動くのか」P51にあります。
0.1を100回足すと、10になると思いきや、ならないのである。