クラス型
オブジェクト指向の中心となるクラスを表します。define-class で定義されます。
Curlでプログラムを書くということは、多くの場合クラスの実装になります。プリミティブ型との大きな違いは、クラスはデータとメソッド(振る舞い)の両方を持つことです。また、多くのクラスは、ひな形(クラス定義)から、インスタンスを生成して使用します。
クラスについて説明をするのは、ほぼオブジェクト指向言語の説明になってしまいますので、ここでは、Curlの特徴的な部分についてのみ触れておきます。
多重継承
最近のオブジェクト指向言語の多くが1つのクラスのみを継承できる単一継承ですが、Curlは複数のクラスを継承できる多重継承をサポートしています。
パラメータ化クラス
クラス設計をするときには取り扱える型を指定せず、プログラマの使いたい型を指定して利用するクラスをパラメータクラスと言います。コレクションフレームワークなどで威力を発揮します。Javaではジェネリックスと呼ばれています。
Objectクラスを暗黙の継承とする
多重継承ではありますが、必ずObjectクラスを継承します。メソッドのオーバーライドは可能ですが、オーバーロードはサポートしていません。
プロシージャ型
プリミティブ型とは反対に、データを持たずに、メソッドだけを記述するのがプロシージャです。define-proc で定義されます。プロシージャ型もオブジェクトです。配列やハッシュテーブルに入れることができます。一般的にはクロージャと呼ばれています。Curlの特徴的な点は以下のとおりです。
複数の引数指定方法を持つ
位置パラメータ、キー付きパラメータ、残余パラメータと豊富な引数指定方法を持ちます。
複数の値の戻り値を返せる
戻り値を複数返すことができます。ポインタを使わない1つの値のみしか返せない言語では、戻り値用のクラスを作ったりしなければなりませんが、Curlは簡単に複数の値を返せます。
この記事は参考になりましたか?
- 知っておきたいCurl文法の要点連載記事一覧
-
- ここがポイント!Curlプログラミング コレクション(配列・ハッシュテーブル・セット)の文...
- ここがポイント!Curlプログラミング データ型とTypeクラス
- ここがポイント!Curlプログラミング null値の取り扱い(キャスト・マクロの利用)
- この記事の著者
-
久保田 一郎(クボタ イチロウ)
財団法人日本自動車研究所電算システムGr所属。Macintosh HyperCardとOracleを使った業務システムの開発から始まって、4D、Java、AIRを経由してCurl に到達。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
