GoGPT Best VPN GoSearch

OnWorksファビコン

PDL::Objectsp - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで PDL::Objectsp を実行します。

これはコマンド PDL::Objectsp で、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できます。

プログラム:

NAME


PDL::Objects -- オブジェクト指向、それとは何か、そしてそれを活用する方法

DESCRIPTION


これはまだ適切に書く必要があります。 [また、お勧めしない正当な理由はありますか?
追加のオブジェクト データをヘッダー ハッシュに保存しますか?]

継承
piddle をサブクラス化する理由は基本的に XNUMX つあります。 XNUMXつ目は、単にあなたが
次のような独自のルーチンを使用できるようにしたい

$piddle->something()

ただし、PDL 名前空間を台無しにしたくありません (確かに、価値のある目標です!)。 もう一つはそれです
一部の関数の特別な処理やデータに関する詳細情報を提供したい場合
ピドルには含まれています。 最初のケースでは、次のようにすることができます

パッケージバー;
@ISA=qw/PDL/;
sub foo {my($this) = @_; フィドル;}

パッケージメイン;
$a = PDL::pdl(BAR,5);
$a->foo();

ただし、PDL オブジェクトは C 構造体への不透明な参照であるため、次のことはできません。
たとえば、サブクラス化による追加データによって PDL クラスを拡張します。 この問題を回避するには
PerlDL には、PDL クラスを拡張するサポートが組み込まれています。 があります 恵まれた関係
ハッシュ。 を入手できます。 があります 次のように動作します IS-A 単に「PDL」オブジェクトを割り当てるだけです
PDL という名前の属性を追加し、メソッドを再定義します。 initialize().

パッケージ FOO;

@FOO::ISA = qw(PDL);
サブ初期化 {
私の$ class =シフト;
私の $self = {
Creation_time => time()、# 必要な拡張子 :-)
PDL => null、# PDL オブジェクトの保存に使用されます
};
$self、$class; を祝福します。
}

すべての PDL コンストラクターが呼び出す initialize() 拡張機能が追加されたことを確認するには
PDL コンストラクターが自動的に作成されます。 「PDL」属性は、perlDL によって、
PDL オブジェクトとすべての PDL メソッドは、
PDL オブジェクト (祝福されたスカラー) の代わりに祝福されたハッシュ参照。

ピドルからサブクラス化されたクラスをサブクラス化する場合は、次のことを行う必要があることに注意してください。
SUPER::initialize を呼び出します。

コード参照に関する情報が必要です!!


PDL サブクラス化の簡単な例は、PDL 配布テスト ケースで見つけることができます。
ファイル。 「t/subclass2.t」、「t/subclass3.t」などを見てください。

出力 自動作成   サブクラス化された オブジェクト
出力が作成されて返される PDL 関数の場合、PDL は次のいずれかを呼び出します。
サブクラス化されたオブジェクトの「initialize」または「copy」メソッドを使用して出力オブジェクトを作成します。 (見る
PDL::Indexing については、出力の自動作成に関する説明を参照してください。) この動作は次のように要約されます。
以下:

·
簡単な拡張で 関数、署名を持つものとして定義される

func( a(), [o]b() )

PDL は $a->copy を呼び出して出力オブジェクトを作成します。

Perl の哲学の精神に基づいて、 初級 物事 初級, この動作により、
多くの単純な PDL をオーバーロードすることなく、PDL でサブクラス化されたオブジェクトを作成できる
このカテゴリの関数。

PDL ディストリビューション内のファイル t/subclass4.t は、この動作をテストします。 そのファイルを参照してください
例として挙げられる。

·
他の関数の場合、PDL は $class->initialize を呼び出して出力オブジェクトを作成します。 どこ
$class は、関数に指定される最初の引数のクラス名です。

このようなより複雑なケースでは、サブクラス化されたオブジェクトの内容を後から推測することは困難です。
設計者は、「コピー」と「初期化」のどちらが適切かを判断する必要があります。 したがって、これらの場合については、
$class->initialize はデフォルトで呼び出されます。 これが適切でない場合は、オーバーロードしてください。
サブクラスの関数を使用して、オーバーロードされた関数の適切な処理を実行します。
コー​​ド。

onworks.net サービスを使用して PDL::Objectsp をオンラインで使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad




×
Advertisement
❤️ここでショッピング、予約、購入してください。料金はかかりません。これにより、サービスが無料で維持されます。