SHOEISHA iD

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

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

C#プログラマのためのF#入門

F#の継承とインターフェイス

C#プログラマのためのF#入門(4)


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

モジュール

 継承、インターフェイスと直接かかわりがあるわけではありませんが、ベータ2にて変更された機能の追加説明として、モジュールについて解説したいと思います。

 モジュールとは、クラスや値などのコードのグループのことで、関連したコードをグループ化したり、オブジェクトの名前の重複による問題を解決したりするのに使用されます。名前空間には値やファンクションを直接宣言できないため、それらを宣言したモジュールを含めます。クラスやdo式は直接名前空間に含めることが可能です。

 モジュールはライブラリとして、別ファイルにxxx.fsという形式で保存します。同じプロジェクト内のファイルからこのコードを呼び出す際には、作成されたdllファイルを参照として追加し、修飾名を使用するか、モジュールをopenします。修飾名の使用とは、例えば、testModuleというモジュールのtestMethodというメソッドを使用する場合、testModule.testMethodというようにメソッド名の前にモジュール名とドットをつけます。

【構文】モジュール
// トップレベルモジュール宣言
module [アクセス修飾子] [名前空間.]モジュール名
宣言
// ローカルモジュール宣言
module [アクセス修飾子] モジュール名 =
   宣言

 トップレベルモジュールはそのファイル内すべてが対象で、1つのファイルに複数のモジュールを宣言する場合には、ローカルモジュール宣言を使用します。

[リスト11]モジュール
//toplevelModule.fsというファイルに以下のコードを記述してライブラリとして保存

module toplevelModule
let testMethod x y =
    x + y
他のファイルから呼び出す場合、上記で作成したdllを参照の追加で指定してから、下記の2通りのうちいずれかのパターンでメソッドを呼ぶ
//モジュール名.メソッド名
let testItem = toplevelModule.testMethod 2 3 //

// もしくはファイルのトップにてモジュールをopenする
//open toplevelModule 
//let testItem = tesstMethod 2 3

Console.WriteLine(testItem);;

 今バージョンから、F#のモジュール用の.fsファイルはすべてトップにモジュールの宣言(名前空間の場合は名前空間の宣言)を必要とするようになりました。

【参考】

今バージョンでは、メソッドに異なる種類のパラメータを渡す場合に使用するOverloadID属性の設定が不要になるなど属性に関する機能などの変更はあったようですが、今後重複機能の削除以外にはソースレベルの変更は行わない予定のようです。

まとめ

 今回はF#のオブジェクト指向の一部分である継承とインターフェイスについて紹介しました。従来のオブジェクト指向と概念的に大きな違いはありませんが、オブジェクトの宣言、実装における小さな違いを覚えて上手に使いこなしてください。次回は「F#のクラス拡張」について、解説予定です。

修正履歴

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

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

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト 星山 仁美(ホシヤマ ヒトミ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4714 2010/01/25 22:09

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング