タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Perlとoopに関するmollifierのブックマーク (5)

  • blessは2引数で - Pixel Pedals of Tomakomai

    わかっててわざとやるんだったらいいんですけど、そうじゃないなら定石通りに書くべきだと思います。 5 sub new { 6 my $c = shift; 7 bless $c; 8 } 33 my $human = Human::new({'name' => 'ビンゴ', 34 'age' => 1, 35 'bag' => {} 36 }); 第31回 Perlでオブジェクト指向を書こう この書き方の問題点は二つあります。まず、コンストラクタを Human::new のように静的呼び出ししていること。もう一つが、blessを1引数で使っていることです。 確かにblessは1引数で使っても、デフォルトとして定義された時点でのパッケージへリファレンスを紐づけてくれます。ってことは、わざわざクラス名が渡るように書かない方が、冗長じゃなくていいじゃん? と思われるかもしれないですが、それはちょっ

    blessは2引数で - Pixel Pedals of Tomakomai
    mollifier
    mollifier 2009/02/07
    newの書き方
  • 第31回 Perlでオブジェクト指向を書こう - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、オブジェクト指向のプログラムを書いてみようといったので書いてみました〜。 といってもいきなりソースを載せるのもなんなので、まずどんなプログラムを書こうとしたか。 そこからお話させていただきます。 今朝、電車に乗ると必死で、PSPをされている方がおられました(たぶんモンスターハンターだと思われる)。 ということで、なにか冒険者が冒険するようなものを作ってみたいと思います。 でも、そんな大げさなものは作れないので、たんに主人公だけを作ってみたいと思います(といってもこの主人公もできることは少ないのですが)。 主人公 まず、主人公ですから、名前を持ちましょう。そしてこの主人公には年齢の情報も持たせます。そしてこの主人公は、袋(bag)をもっており、なんでもそこに入れることができます。 主人公ができること 主人公は袋を持っていますので、何かを袋に入れることができます。 以下のようにpushメ

    第31回 Perlでオブジェクト指向を書こう - bingo_nakanishiの他言語出身者のためのPerl入門
  • 第32回 前回のソースの説明 - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、どこから説明したらいいものやら...... という感じなのですが、前回のソースの説明をしたいと思います。 前回のソースはもうひとつ窓を開けてもらって(別のブラウザとかで見てもらって)ここでは、部分的に説明していきたいと思います。 まずは、 new 33 my $human = Human::new({'name' => 'ビンゴ', 34 'age' => 1, 35 'bag' => {} 36 }); このnew をしている部分からいきたいと思います。 new関数自体は次のようになっています。 5 sub new { 6 my $c = shift; 7 bless $c; 8 } 単に、受け取ったものをblessしているだけ。 つまり、受け取ったものに魔法をかけて、Humanパッケージの関数を使えるようにしているわけですね。 おっと! そうそう、主人公をつくるためのパッケージは

    第32回 前回のソースの説明 - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/24
    perlでオブジェクト指向。良い説明
  • 第28回 blessは各々のパッケージに任せよう - bingo_nakanishiの他言語出身者のためのPerl入門

    さて、ただblessするだけの関数を作ったが、 これを各々のパッケージに持たせることで、 各パッケージに、blessされた変数を返してもらうことにする。 これにより、 パッケージ名::blessされた変数を返す関数 という書式で、そのパッケージの関数を呼び出せる変数がもらえることになる。 例えば、Hogeパッケージの関数を呼び出すことができる変数を返してもらうなら、 my $c = Hoge::new(); と書ける。 あとは、 $c->h() といった感じで使っていけばいいのだ。 なお、今回は、 blessされた変数を返してくれる関数を new という名前にした。 それでは、もっと具体的な例を見てみよう。 use strict; package Hoge; sub new { my $c = shift; bless $c; # Hogeパッケージ内で呼ばれているので、第2引数は'Hog

    第28回 blessは各々のパッケージに任せよう - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/22
    blessを使ったPerlのオブジェクト指向の例
  • 第26回 別パッケージの関数を呼び出すいろいろな方法 まとめ - bingo_nakanishiの他言語出身者のためのPerl入門

    さあ、 別パッケージを呼び出す方法が、たくさん出てきたので、混乱してきたところではないだろうか? いままでのところをまとめよう。 別パッケージの関数を呼び出す方法 パッケージ名::関数名 blessされた変数->関数名 'パッケージ名'->関数名 パッケージ名->関数名 この 4つの方法がでてきたわけだが、 下3つに共通しているのは、 -> 記号で関数を呼んでることである。 つまり 前回の最後のソースを実行してみよう それでは、前回の最後のソースを実行してみよう! 先ほども述べたが、別パッケージを呼び出す方法は、 で呼び出す方法 > で呼び出す方法 に大別できるのである。 この違いを示すのが、前回のソースである。 (再掲) use strict; package Hoge; sub h { my $z = shift; print "$z", "\n"; # 関数に与えられた第1引数を表示

    第26回 別パッケージの関数を呼び出すいろいろな方法 まとめ - bingo_nakanishiの他言語出身者のためのPerl入門
    mollifier
    mollifier 2009/01/21
    そろそろPerlのオブジェクト指向に関して大事なところに来た
  • 1