mixi 日記アーカイブ
- 概要
- 記録年月
- 日記
- 使用
- 階層ツリー
- 非推奨日記
- 検索
- ヘルプ
ナビゲーション
2006 年 4 月
2006 年 4 月に書いた日記。30 項目あります。
日記の概要
- メソッドの存在確認
-
最後に、新しくモジュールを起こす場合に便利と思われる機能を考えてみよう。現行の property モジュールの仕様であれば、setter
……
(30日 23:15)
- ここまでの整理
-
ここまで幾つかの考察をしてきた。property モジュール全体を書き直してみよう。プロパティ名、転送先 getter/setter メソッド
……
(29日 22:56)
- UNIVERSAL クラス
-
Java や C# では、Object というルートクラスがある。あらゆるクラスは暗黙的に Object から派生している。Perl にも同様、暗黙
……
(28日 23:58)
- 読み取り・書き込み専用
-
さて、今までは読み書き両用でみてきたが、現実には、読み取り専用のプロパティや、書き込み専用のプロパティもある。property ・
……
(27日 19:43)
- 継承に対応させる
-
property.pm を動的呼び出しに対応させるには、インタフェースを変更しなければならない。従来はコードリファレンスを受け取って
……
(26日 19:57)
- メソッドの動的呼び出し
-
昨日の考察により、コードリファレンスを使って、オブジェクトのメソッドを呼ぶことは、継承上の問題を生ずるため使えないことが
……
(25日 19:27)
- 継承とコードリファレンス
-
property モジュールはコードリファレンスを使って、該当パッケージのメソッドを関数のように呼び出す。これは、継承の問題と関
……
(24日 21:28)
- 関数とメソッド
-
そこそこ洗練されてきた property モジュールだが、まだまだ課題点はある。問題の一つは、登録時に setter/getter のコードリフΜ
……
(23日 23:50)
- Carp 対策
-
プロパティによる Carp への影響を考えてみよう。まずは、croak のメッセージの仕組みを調べるために、コールスタックをトレース
……
(22日 23:57)
- property.pm を使ってみる
-
さて、property を使って、Employee.pm を作ってみよう。基本的には他のモジュールを取り込むのと同じ要領だ。========== Emplo
……
(21日 20:02)
- モジュールの実装
-
では、property モジュールに実装を作っていこう。まずは、use の呼び出しの規約を考える。プロパティの作成に必要なのは、名前
……
(20日 23:57)
- シンボリックリファレンス
-
昨日の考察により、通常の手段によって、文字列で受け取ったパッケージのシンボルテーブルに新しくシンボルを追加することは難し
……
(19日 22:13)
- シンボルテーブルへの項目追加
-
文字列として与えられたパッケージに対して、動的にメソッドを登録には、もう一つ壁がある汎用化するため、プロパティを登録する
……
(18日 18:23)
- モジュール化
-
昨日は、型グロブ構文により、自らのパッケージの内容を修正したが、通常、そのようなことを行なう必要はあまりない。それらは、
……
(17日 23:56)
- メソッドの動的登録
-
シンボルテーブルは、パッケージ内部を参照するだけでなく、それを編集することで、パッケージに動的にサブルーチンや変数などを
……
(16日 22:48)
- 型グロブ
-
シンボルテーブルの中身をダンプしてみると、そこにはメソッドや変数名が登録されていた。しかし、全てのシンボルに * 文字が含
……
(15日 23:58)
- シンボルテーブル
-
C# や Java には、リフレクションと呼ばれる機能がある。プログラムからクラスのメンバの情報を得ることができ、文字列で名前を
……
(14日 23:59)
- 複数のプロパティ
-
昨日書いた lvalue ルーチンを見てみよう。sub salary : lvalue { my $this = $_[0]; tie(my $refl
……
(13日 23:56)
- 値の検証と汎用化
-
スカラに tie されたオブジェクトを隠蔽することで、プロパティの代入・取得ハンドラを書くことができた。今日は、値の検証コー
……
(12日 22:26)
- スカラの tie
-
スカラ変数は、値を一つ格納するだけしかできないので、スカラ用の tie オブジェクトは非常にシンプルである。これらが実装する
……
(11日 23:56)
- 代入値の検証はどうするか
-
lvalue を使えば、プロパティ構文が使えるが、代入はサブルーチンの中では行われない。となると、どうやって値を検証するか。さ
……
(10日 23:29)
- lvalue の限界
-
プロパティには、他にも重要な機能がある。それは、setter/getter による値の検証や、読み取り専用、書き込み専用などの制限だ。
……
(9日 22:22)
- 代入可能なメソッド
-
lvalue が任意のサブルーチンに使えるということは、クラスインスタンスのメソッドとしても使えるということだ。理由は、Perl
……
(8日 21:45)
- lvalue 属性
-
lvalue 属性は、組み込み関数だけでなく、自作サブルーチンでも使うことができる。サブルーチンの属性による拡張は、Perl 5.6
……
(7日 22:42)
- 左辺値になるサブルーチン
-
では、左辺値になるサブルーチンとはなんだろうか。Perl には、substr という関数(サブルーチン)がある。文字列の操作をするに
……
(6日 23:11)
- setter/getter の設計思想
-
Perl によるアクセサの実装は以下のようだった。$value = $jack->salary; $jack->salary($new_value); Perl では、利便性や実測
……
(5日 19:28)
- Perl のアクセサ
-
Perl のオブジェクトは、ただのリファレンスであり、上級言語風に言うと、連想配列から継承したクラスなのだ。(例外もあるが、
……
(4日 23:48)
- 題材
-
さて、これからプロパティについて考えていくので、その題材となるクラスを考えよう。今回は、Employee オブジェクトを作る。Emp
……
(3日 23:59)
- プロパティと言う概念
-
一部の高級言語には、プロパティと言う概念がある。プロパティは、setter と getter を特別な構文でカプセル化したものだ。&nbs
……
(2日 22:46)
- Java と C#
-
最近、Java を触る機会が増えたC# は非常に Java に似ている言語であり、Java に影響をうけて洗練された言語だ。また、Java も
……
(1日 23:56)
mixi 日記アーカイブ
- 概要
- 記録年月
- 日記
- 使用
- 階層ツリー
- 非推奨日記
- 検索
- ヘルプ
ナビゲーション
Copyright (c) 1994-2007 Project Loafer. All rights reserved.