Rubyの勉強を初めてから、ただいまパーフェクトRubyとプログラミング言語Rubyという書籍を並行して進めるカニバサミ勉強中。この2冊を同時に進めてみて気になったとこやらをあれこれツラツラと書いてみるパート3でござんす。
・モジュールの特徴
●インスタンスを生成できない
忘備録的な意味で書いておこう。いつ使うのかわからんけど。
●継承することができない。
クラスと違って〜、という事だね。
・モジュール関数の呼び方
●モジュールをレシーバにして呼び出す
irb(main):005:0> Math.sqrt(2) => 1.4142135623730951
●Includeする。
irb(main):008:0> include Math => Object irb(main):009:0> sqrt(2) => 1.4142135623730951
・autoloadは指定したモジュール、クラスが最初に参照された時に自動的にrequireされる。
名前からするとプログラム実行時にloadされそうな、名前の印象からして効果を間違えそうなのだけれど、実行時にloadするのってrequireやん?と冷静に考えればどうということはない。ってか。
・クラスは
クラスはだいたいObjectクラスから派生したサブクラス。定義したクラスもスーパークラスを定義しなかった場合は、自動的にObjectクラスを継承する。
irb(main):025:0* hoge = 'a' => "a" irb(main):026:0> hoge.class => String irb(main):027:0> hoge.class.superclass => Object irb(main):028:0> hoge = 1 => 1 irb(main):029:0> hoge.class => Fixnum irb(main):030:0> hoge.class.superclass => Integer irb(main):031:0> hoge.class.superclass.superclass => Numeric irb(main):032:0> hoge.class.superclass.superclass.superclass => Object irb(main):002:0> Array.class.superclass => Module irb(main):003:0> Array.class.superclass.superclass => Object irb(main):010:0> Range.class.superclass.superclass => Object irb(main):012:0* SyntaxError.superclass.superclass => Exception irb(main):013:0> SyntaxError.superclass.superclass.superclass => Object irb(main):001:0> class Hoge irb(main):002:1> end => nil irb(main):003:0> Hoge.superclass => Object
・キーワードリテラル
irb(main):001:0> nil => nil irb(main):002:0> true => true irb(main):003:0> false => false irb(main):004:0> self => main irb(main):006:0> __FILE__ => "(irb)" irb(main):007:0> __LINE__ => 7 irb(main):008:0> __ENCODING__ => #<Encoding:UTF-8>
今回はこれくらいですかね。
全然関係のない話ですけれど、RSSを流し見している時に読むか読まないかは基本的にタイトルで判断している。それは自分自身のウェブサイトにも言えることってことだ。