CodeZine(コードジン)

特集ページ一覧

VB6プログラマのためのCurl入門
プロシージャとクラスについての比較

第3回 Curl言語のノリをつかもう(その2)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/12/02 14:00

 VB 6.0では、Sub~End SubおよびFunction~End Functionという構文でプロシージャを作り、クラスモジュールでクラスを作ります。Curlでは、これからがどのように表現されるのでしょう。できるだけシンプルなサンプルプログラムを示しますので、Curl言語のノリをつかんでください。

目次

VB 6.0と比較しながらCurl言語のノリをつかもう

 前回に引き続いて、Curl言語の基本的な言語構文を説明します。今回取り上げるのは、プロシージャとクラスの作り方です。VB 6.0では、Sub~End SubおよびFunction~End Functionという構文でプロシージャを作り、クラスモジュールでクラスを作ります。Curlでは、これからがどのように表現されるのでしょう。できるだけシンプルなサンプルプログラムを示しますので、Curl言語のノリをつかんでください。

これまでの記事

プロシージャの作り方

 はじめに、プロシージャを作ってみましょう。Curl IDEを起動したら、「ファイル」メニューから「新規プロジェクト」を選択し、表示されるウインドウで「アプレットプロジェクト」を選択します。「マニフェスト名」に「ProcSample」と入力し、プロジェクトを保存する「ディレクトリ」には前回と同様に「C:¥CurlSamples¥ProcSample」と入力します。最後に[OK]ボタンをクリックしてください。

 Curl IDEの左上にツリー表示された「start.curl」をダブルクリックします。これによって、ソースコードを編集するエディタのウインドウが開きます。エディタの中には自動生成された数行のコード(Curlのプログラムであることを示す宣言文)があります。これらのコードの後に続けてCurl言語でプログラムを記述します。これから示すサンプルプログラムのコードでは、宣言文の後に記述するものだけを示します(ここまでの手順は、後で別のサンプルを作るときも同様です。サンプルごとに新規プロジェクトを作成し、適当なマニュフェスト名を付け、マニュフェスト名と同名のディレクトリに保存してください)。

 VB 6.0では、値を返さないプロシージャをSub~End Subという構文で作り、値を返すプロシージャをFunction~End Functionという構文で作ります。Curlでは、値を返す、返さないにかかわらず {define-proc・・・} という構文で作ります。値を返さない場合は、戻り値のデータ型としてvoid(「無し」を意味する)を指定し、値を返す場合はintやdoubleなどのデータ型を指定します。

 サンプルを示しましょう。リスト1は、2つの引数の加算結果を返すadd-numプロシージャです。プロシージャ名が複数の単語(ここではaddとnum)を組み合わせたものとなっている場合は、ハイフンで区切るのがCurlのノリです。

リスト1 2つの引数の加算結果を返すプロシージャ
{define-proc {add-num a:int, b:int}:int
    {return a + b}
}

 {define-proc・・・} の中に { } で囲んで「プロシージャ名」と「引数名:データ型」を記述します。引数が複数の場合は、カンマで区切ります。ここでは、int型のaおよびbの2つの引数があります。 } の後にある:intは、プロシージャの戻り値のデータ型がint型であることを示しています。プロシージャの処理は、やはり { } で囲みます。{return a + b} という処理は、引数aとbの加算結果をプロシージャの戻り値として返すことを意味しています。このように、{ } を多用するのもCurlのノリです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2008/11/19 18:33 本文とリストのタイトルを若干訂正しました。

バックナンバー

連載:VB6プログラマのためのCurl入門

著者プロフィール

  • 矢沢久雄(ヤザワヒサオ)

    パッケージソフトの開発・販売に従事するかたわら、書籍や雑誌記事の著作活動、セミナーやカンファレンスにおける講演活動も精力的にこなす自称ソフトウエア芸人です。  

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5