Rubyのクラス
本日は、Rubyに元々ある便利クラスについてでした。
8章、9章よりは全然分かりやすかった!フムフム、なーるほどと言う感じで、けっこうスイスイ使い方自体は理解できた(と思う)。
PHPを使っていたころは、あまり「PHPに元々あるクラス」と言うものを意識して利用したことがないので、おそらくたくさん便利な物があったのだろうと思う。勿体無いことをした...。ま、これから利用すればよいのです。
ガンガン良いソースを見て、良いソースを書くことが良いと思う。
たのしいRubyの練習問題を少しずつでもしっかりと理解しながら解こう!1日2問は継続して解いてみよう。
本日の講義で気になったことをメモ。
○文字コードについて
日本語が利用できる文字コードは、大きく分けて4つある。
Shift_JIS, EUC-JP, ISO-2022-JP, UTF-8
だんだん UTF-8 が主流になりつつある!?
それは、UTF-8が Unicode と言う「新しい国際的な文字コード規格」を利用しているからである。
例えば、中国と日本では「日」と言う同じ漢字を利用しています。
でも、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になると思いきや、ならないのである。