SHOEISHA iD

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

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

知っておきたいCurl文法の要点(AD)

ここがポイント!Curlプログラミング
コレクション(配列・ハッシュテーブル・セット)の文法

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

セット

 セットはユニークな値を保持する入れものです。順番は保持されません。前章の HashTable-of のキーの部分はユニークな値で構成されるのでセットとなります。以下のように利用します。

let 変数:{Set-of 値の型} = {{Set-of 値の型} 引数, 引数, ...}

 Set-of もまたパラメータ化クラスですので、値の型を指定する必要があります。セットに値を追加するには、insert メソッドを利用します。setの中に値があるかどうかを判定するのは、member? メソッドを使います。

コード9
{curl 7.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}

{value
    let string-set:{Set-of String} = {{Set-of String}}
    {string-set.insert "a"}
    {string-set.insert "b"}
    {string-set.insert "c"}

    {string-set.member? "c"}
}

 実行結果は、true が表示されます。

 いろいろな値を持つデータから、ユニークな値を取り出したい場合、Set-of でデータを追加していけばそれで完成です。

 次のサンプルコードでは、Randomクラスの next-in-range メソッドを使って、0から10の間の整数の乱数を生成しています。乱数の生成を10回繰り返した場合、int-set にはいくつの要素が格納されているかが表示されます。実行するまでいくつになるか分かりません。9以下の数であった場合、同じ値が生成されたことが分かります。

コード10
{curl 7.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}

{value
    let int-set:{Set-of int} = {{Set-of int}}
    let random:Random = {Random}
    {for i:int = 0 below 10 do
        {int-set.insert {random.next-in-range 0, 10}}
    }

    int-set.size
}

 setの中の要素を削除したい場合は、remove メソッドを使います。

コード11
{curl 7.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}

{value
    let string-set:{Set-of String} = {{Set-of String} "a", "b"}
    {string-set.remove "b"}
    {string-set.member? "b"}
}

 実行結果は、false です。

 Set-of で代表的なメソッドは以下のようになります。

表5・Set-ofの主なプロパティ
プロパティ 内容
element-type 要素の型
empty? 要素が空か否か
size 要素の数
表6・Set-ofの主なメソッド
メソッド 内容
clear 要素を全て削除する
insert 要素を追加する
member? 指定した要素がセットに含まれているか否かを返す
remove 要素を削除する

次のページ
コレクションの反復処理

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

  • このエントリーをはてなブックマークに追加
知っておきたいCurl文法の要点連載記事一覧

もっと読む

この記事の著者

久保田 一郎(クボタ イチロウ)

財団法人日本自動車研究所電算システムGr所属。Macintosh HyperCardとOracleを使った業務システムの開発から始まって、4D、Java、AIRを経由してCurl に到達。

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング