引数ふたつのPerlの関数

| | トラックバック(0)

カテゴリ:

例えば push。

push @array, $scalar;

と書く。

その心は

「@array」という配列(の末尾)に「$scalar」という変数を追加してね

である。

あるいは bless。

bless $self, $class;

と書く。

その心は

「$self」というオブジェクトに「$class」というクラス名を与えよ

である。

主に、この二つ。良く迷うのは。

push @array, $scalar; なのか push $scalar, @array;

bless $self, $class; なのか bless $class, $self;

という感じに。

日本語的な感覚で言うと、「$scalarを@arrayに追加して」なので
その直感で行くと後者なのだけど、不正解。

英語のSVOO構文を思い出そう。

目的語が二つ。OO(オーオー)。
このとき、「人に〜物を〜」と習ったと思う。

I'll give him a cookie.

とは言うけど、

I'll give a cookie him.

とは言わない。

というわけで、pushやunshiftやblessを使うときに
どっちがどっちだか忘れてしまったら、
SVOO構文の「人に〜物を〜」を思い出しましょうというお話。

ただ、僕はそれがわかっていても、
どっちがどっちだかわからなくなるんですけども。
特にblessの時。(オブジェクト指向プログラミングの理解が曖昧だとそうなる。)

トラックバック(0)

このブログ記事を参照しているブログ一覧: 引数ふたつのPerlの関数

このブログ記事に対するトラックバックURL: https://nozawashinichi.sakura.ne.jp/MT-4.25/mt-tb.cgi/802

comments powered by Disqus

このブログ記事について

このページは、Shinichi Nozawaが2011年1月 6日 23:07に書いたブログ記事です。

ひとつ前のブログ記事は「Perlのモジュールでよくわかってなかったこと」です。

次のブログ記事は「Perlの無名配列」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。