プログラミングにおけるマッピングとはどういう意味ですか?


9

私はしばしば次のようなことを聞​​きます:

  • クラスのマッピング
  • データベースからのオブジェクトのマッピング
  • オブジェクトのマッピング
  • リストの要素のマッピング
  • マッパー

マッパーと何かをマッピングする行為は実際には何を意味しますか?


2
これは、あるセットのアイテムを別のセットのアイテムと照合すること、または1つのセットの各アイテムに対して関数を実行して、対応する新しいセットを取得することを意味します。数学的にも同じです。したがって、データベース内のテーブルをコード内のオブジェクトと一致させることを意味する場合があります。または、リスト内の各アイテムに対して操作を実行します。マッパーは、1つのセットのアイテムを別のセットのアイテムと照合する関数またはクラスです。
JacquesB 2016年

回答:


12

動詞「map」と名詞「mapper」のプログラミングでの使用は、英語での一般的な使用とはほとんど関係がないため、これは非常に理解できる質問です。

プログラミングの使用も非常に広いので、「マップ」の最も具体的で明確な意味から始めましょう。つまり、mapほとんどの関数型プログラミング言語に存在する高階関数です。JavaScriptでの簡単な例を次に示します。

var numbers = [1, 2, 3, 4];
var timesTwo = function(n) {
    return n * 2;
}
numbers.map(timesTwo); // [2, 4, 6, 8]

map関数には配列と別の関数が必要です。元の配列のすべての要素にその関数を適用した結果である新しい配列を返します。

この用語の他のすべての使用法は、少なくとも私の経験では、この特定の使用法に類似していると見なすことができます。最も一般的な意味では、プログラミングにおける「マッピング」とは、いくつかのものを取り、それから何らかの方法でそれらのそれぞれを別のものに関連付けることを意味します。

私の日常業務での典型的ですが不正確な使用法は、「ハンドラー関数へのUIイベントのマッピング」です。たとえば、ユーザーがボタン1をクリックしたときhandleButton1Clickに呼び出されるようにしたり、ユーザーが画像にカーソルを合わせたときに呼び出されたりするようにしますhandleImageHover

この用語の最も高度な使用法の1つはORM(オブジェクトリレーショナルマッピング)です。これは、リレーショナルデータベースの行をOOP言語のオブジェクトにマッピングすることを意味します。これにより、コード内の「通常の」オブジェクトを操作する必要がなくなります。 SQLを直接作成するか、データベースの構造を心配します。


9

それは数学的概念です。

www.thefreedictionary.com

2. Mathematics The correspondence of elements in one set
to elements in the same set or another set.

2つの異なるデータモデル間の対応を確立することです。

  • たとえば、クラスUserはデータベーステーブルの行の表現であり、USERオブジェクトリレーショナルマッピングと言えます。
  • または、1つのリストの特定の要素が他のリストの1つの要素に対応することを示すキーと値のペアのリストを作成できます。

ユーザー名を考えると、あなたの母国語はスペイン語だと思います。マッピングまたは「マッピングする」はemparejarに翻訳できます。


4
あなたの説明はおそらく、マッピングの経験をすでに持っている人だけが理解できるでしょう。
Robert Harvey

@RobertHarveyちょっと改善しました。
TulainsCórdova2016

4

一般に、「マッピング」とは、いくつかの値を他の値に関連付けることです。手動のプロセスを意味する傾向があります。それは固定された関連付けを意味する傾向があります。ASCII値を考慮します。

'a' -> 97
'b' -> 98
'c' -> 99
...

関連付けのセット全体をマッピング(名詞)と呼びます。文字と数字を持ち、関連付けを行うことは、マッピング(動詞)とも呼ばれます。関数は入力を受け取り、計算に基づいて出力を生成するため、関数とは異なります。通常、マッピングは計算を行わず、代わりに何らかのルックアップを行います。


0

地理マップは、現実世界のランドマークを別の形式、つまり読みやすい紙に変換します。

科学におけるマッピングも同じ考えです。1つのドメインから一連のオブジェクトを取得し、別の用途に変換します。

これは、さまざまな状況で一般的に使用できる幅広い概念です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.