Ruby の勉強を初めて気になったところをあれこれ 3

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

Related Posts


投稿者: Takeken

インターネット利用者のITリテラシーを向上したいという設定の2次元キャラです。 サーバー弄りからプログラミングまで手を付けた自称エッセイストなたけけんの物語。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です