|
|
第13回 Scalaプログラミングの勘所(3)
浅海 智晴(あさみ ともはる)
最近はすっかりScalaプログラマ。代表作はXML SmartDoc(XML文書処理システム),Relaxer(XML/Javaスキーマコンパイラ)。現在はScala DSLモデルコンパイラSimpleModelerを開発中。近著は「上流工程UMLモデリング」(日経BP),「マインドマップではじめるモデリング講座」(翔泳社)。モデル駆動開発×クラウド・コンピューティングの研究プロジェクトedge2.cc(Edge to Cloud Computing)を中心に活動中。
4 その他Scalaプログラミングで特に重要と思われる文字列処理とコレクション・ライブラリのプログラミング作法について説明しました。今回は,その他の重要な項目について簡単に説明していきます。 4.1 for文Scalaのfor文は,一見Javaのfor文と良く似ていますが,その内容は全く異なっています。もちろん,Javaのfor文的な使い方もできるのですが,もっと高機能であり拡張性も高くなっています。 for文の説明の準備として,以下の定義を行います。ケース・クラスとして,国と都市を定義し,簡単なデータを入れました。ケース・クラス国は国の名前と首都,ケースクラス都市は都市名,国名,人口の情報を持ちます。変数国一覧には国情報のリストを,都市一覧には都市情報のリストを定義しました。
クラスNationのListである国一覧へのアクセスは以下のようになります。
実行結果は以下の通りです。これは一般的なfor文ですね。
Scalaのfor文の真骨頂はfor yield文によるコレクションの生成にあります。以下の例では,クラス国のListである国一覧から,国名と首都の対のTupleのListを生成します。
実行結果は以下の通りです。この例からわかる通りfor yield文は生成したコレクションを返すので,これを変数に格納して使用することができます。
>>Scalaのfor文ではもっとすごいことが…
連載新着連載目次へ >>
|