[過去ログ] Perlについての質問箱 63箱目 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
67
(1): 2016/02/16(火)07:29 ID:y+ZjOqCo(1/2) AAS
いきなりだけどPerlのクラスの仕組み(かなり手抜き)

+ JavaScript の質問用スレッド vol.128 +©2ch.net
2chスレ:hp のJavaScriptのthisの話の余談

大雑把に言うとPerlのクラス(オブジェクト)はハッシュに毛が生えたもの

※この段階ではクラスではない。ただのハッシュを返すnew関数とそれを入れたKlassパッケージ
package Klass;
sub new { return {a=>1 b=>2 } }
省13
68
(1): 2016/02/16(火)07:29 ID:y+ZjOqCo(2/2) AAS
ここからが面白くて「アローの左側は関数の第一引数になる」というルールを追加する。
そうすると、Klass->new() という呼び出しは、 new('Klass') 相当になることがわかる。

ということで、newの第一引数にはクラスの文字列が入ってくるのでそれを使える。
sub new { my $class = shift; return bless({a=>1 b=>2 }, $class }

さらに、$obj->foo() の呼出も同じ。 foo($obj) 相当になる。
なので、sub foo { my $self = shift; } の$selfにはnewの戻り値である
毛が生えたハッシュ、つまりオブジェクト自身(他の言語のthis相当)が入ってくることになる。
省5
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.269s*