Rubyの勉強を初めて気になったとこ パート3

 

ではではパート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を流し見している時に読むか読まないかは基本的にタイトルで判断している。それは自分自身のウェブサイトにも言えることってことだ。

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *