SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

VB6プログラマのためのCurl入門(AD)

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

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

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

プロシージャの呼び出し方

 add-numプロシージャを呼び出して、戻り値を表示してみましょう。リスト2は、引数に123と456を与えてadd-numプロシージャを呼び出し、その戻り値を変数ansに格納し、最後に変数ansの値を表示するコードです。

 {add-num 123, 456} という構文に注目してください。プロシージャ名の後に引数をカンマで区切って指定するのはVB 6.0の構文と同様ですが、プロシージャの呼び出し全体を { } で囲んでいるのがCurlの構文のノリです。Curlという名前は、curly bracket(中カッコ)に由来していると言われます。Curlの言語構文には、プログラムの構成要素を { } で囲んでパーツ化するようなノリがあります。

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

|| プロシージャを呼び出し、戻り値を表示する
{let ans:int}
{set ans = {add-num 123, 456}}
加算結果は、{value ans}です!

 リスト2では、コメント(ソースコードの中に記述する説明文)もあります。Curlでは、縦棒2つ(||)に続けてコメントを記述します。それでは、「実行」メニューから「プロジェクトを実行」を選択して、プロジェクトを実行してみましょう。Webブラウザが起動して、その中に「加算結果は、579です!」と表示されるはずです(図1)。

図1 リスト2の実行結果
図1 リスト2の実行結果

複数の戻り値を返すこともできる

 Curlのプロシージャには、VB 6.0にできない便利な機能があります。VB 6.0のプロシージャが返せる戻り値が1つだけなのに対し、Curlのプロシージャは複数の戻り値を返すことができるのです。サンプルを示しましょう。

 リスト3の前半部は、2つの引数の加算結果と減算結果を返すadd-sub-numプロシージャです。returnの後にカンマで区切って2つの戻り値を指定します。戻り値のデータ型は、:(int, int) のようにカッコ(ここは小カッコですので注意してください)で囲んでカンマで区切って指定します。

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

|| プロシージャを呼び出し、戻り値を表示する
{let ans1:int, ans2:int}
{set (ans1, ans2) = {add-sub-num 123, 456}}
加算結果は、{value ans1}です!
減算結果は、{value ans2}です!

 リスト3の後半部は、add-sub-numプロシージャの呼び出しです。2つの戻り値を代入する2つの変数を (ans1, ans2) のようにカッコ(ここも小カッコですので注意してください)で囲んでまとめていることに注目してください。add-sub-numプロシージャのreturnで前側にあった戻り値(加算結果)と後ろ側にあった戻り値(減算結果)は、それぞれ ( ) で囲まれた前側の変数ans1と後ろ側の変数ans2に代入されます。プログラムの実行結果を図2に示します。

図2 リスト3の実行結果
図2 リスト3の実行結果

次のページ
クラスの作り方

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
VB6プログラマのためのCurl入門連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3323 2008/12/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング