せかいや

いまいるここを、おもしろく http://sekai-in-the-box.appspot.com/

【Ruby】「小さい」クラスとは? プログラミングRuby学習感想文

この本を読んでいます。

プログラミング言語 Ruby

プログラミング言語 Ruby

以下、気が付いたことなど。


眠い・・寝たい。

Stringはミュータブル

ってことは知ってるけど

ここまで繰り返されると、
「そもそもJavaではどうしてイミュータブルなんだろう」
と思って。

調べてみたら「そのほうが便利だから」。
ただしメモリとのトレードオフ、とのこと。
なるほど。

 

連続範囲・離散範囲

連続範囲の確認は cover?
離散範囲の確認は include? を使う

hoge = "aaa".."bbb"
p hoge.include? "aacd"
p hoge.cover? "aacd"

 
■実行結果

false
true

 

リテラル と キーワードリテラル

「キーワードリテラル」はリテラル(直接コードに埋め込める)、かつ式のもの。
例えばtrue nil self __FILE__ など。

ふーむ。selfって変数じゃないんだ。

self = "hoge"

■実行結果

hoge18.rb:2: Can't change the value of self

なるほど。
 

純度の高いオブジェクト指向プログラミング

「オブジェクトは内部インスタンス変数をいくつでもカプセル化できるが、
外の世界に差し出すのはメソッドだけ」
なるほど。

 

定数は未初期化状態になり得ない

「定数は存在するなら何らかの値を代入されているのである」
 

class A
	B
end

 
■実行結果

hoge18.rb:3:in `<class:A>': uninitialized constant A::B (NameError)

なるほど。

 

「小さい」クラス

より専門特化されている、より狭い型、という意味である。
 

class Base;end
class Child < Base;end
p  Child < Base  #<= true


 
おやすみなさい。。。