スキップしてメイン コンテンツに移動

ジェネリクスとは何?

 ジェネリクス(Generics)は、プログラミング言語において、異なるデータ型に対して汎用的なコードを記述するための仕組みです。ジェネリクスを使用することで、特定のデータ型に依存しない再利用可能な関数やクラスを作成できます。これにより、型安全性を保ちながら柔軟で抽象化されたコードを記述することができます。


ジェネリクスは主に以下の場面で役立ちます:


1. **コードの再利用**: 同じロジックを異なるデータ型に適用する場合、ジェネリクスを使うことでコードの重複を避けられます。


2. **コレクションやデータ構造の汎用性**: 配列、リスト、スタック、キューなどのデータ構造を、異なるデータ型で使用する際にジェネリクスを利用できます。


3. **関数の汎用化**: 特定のデータ型に依存しない関数を作成する際、ジェネリクスを使用して関数のパラメータや戻り値の型を柔軟に扱えます。


例を挙げて説明しましょう。以下は、ジェネリクスを使用した TypeScript の関数です。


```typescript

function identity<T>(arg: T): T {

  return arg;

}


// 型推論により、number 型を引数に与えると number 型を返す関数として解釈される

let result = identity(5); // result の型は number となる

```


この例では、`<T>`がジェネリック型パラメータを表し、`arg`の型と戻り値の型が同じ型 `T` となるようにしています。関数呼び出し時に具体的な型が指定されることで、関数内部での型安全性が確保されます。


ジェネリクスは、型安全性を維持しつつ柔軟で再利用可能なコードを書くための強力なツールです。

コメント

このブログの人気の投稿

gitよく使うコマンド集

よく使うgitのコマンド集をまとめてみた。 1.ローカルリポジトリの登録  #git init 2.gitの状態を確認  #git status 3.gitのファイルを追加  #git add . 4.ローカルのマスタにコミットする  #git commit -m "体温管理アプリの初期化" 5.リモートリポジトリを登録する  #git remote add origin https://github.com/ユーザーID/リポジトリ名  例)git remote add origin https://github.com/githubkyo/taionkanri 6. リモートリポジトリの変更履歴の取得 git fetch origin master 7.差分のあるファイル名を表示 > git diff --name-status ローカルブランチ名 origin/リモートブランチ名 【例】 > git diff --name-status master origin/master 8.リモートのファイルのみをローカルに反映する。 git checkout origin/master --src/Eccube/Resource/template/default/default_frame.twig 9.別ブランチをマスタへマージする git checkout master git merge other_branch 以上で、随時更新していく予定。

MongoDB入門編 その1)

mogoDBについて、勉強しながら、紹介していきます。 1.インストール  https://www.mongodb.com/try/download/communityにアクセスして、Available Downloadsの ところから、ダウンロードして、手順に沿ってインストールする。 2.サービスの起動と停止 起動:sudo service mongodb start 停止:sudo service mongodb stop 3.mongoシェルの起動 #mongo 4.実際に使ってみる。 ・用語  MongoDBとRDBとの比較  -------------------------------------  MongoDB          | RDB  -------------------------------------  データベース     | データベース  -------------------------------------  コレクション     | テーブル  -------------------------------------  ドキュメント     | 行(レコード)  -------------------------------------  フィールド       | 列  -------------------------------------   ・データベースの作成  >use study   switched to db study      これだけで、studyというデータベースができました。     > db.stats() {     "db" : "study",     "collections" : 0,     "objects" : 0,     "avgObjSize" : 0,     "dataSize" : 0,     "stora...