JavaScript タプルの例

Muhammad Muzammil Hussain 2023年10月12日
  1. JavaScript のタプル
  2. JavaScript タプルの例 2
JavaScript タプルの例

JavaScript 言語では、タプルは不変の機能を備えた配列のタイプです。配列の一種である単一の変数でタプルにアクセスできます。

JavaScript のタプル

class MyBestTupleExplanation extends Array {
  constructor(...items) {
    super(...items);
    Object.freeze(this);
  }
}

let tuple = new MyBestTupleExplanation('Afridi', 35, 'White');
let [myName, myAge, skinColor] = tuple;
console.debug(myName);     // Afridi
console.debug(myAge);      // 35
console.debug(skinColor);  // White
console.debug('******************************************');
console.debug('Now we are re-assigning the values to tuple');
console.debug('******************************************');
tuple = ['Bob', 24];       // no effect
console.debug(myName);     // Afridi
console.debug(myAge);      // 35
console.debug(skinColor);  // White

出力:

Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White

上記の例では、Array クラスから継承された MyBestTupleExplanation という名前のクラスを作成しました。配列のように動作しますが、不変性機能を備えています。このクラスでは、super メソッドを使用して Array クラスのコンストラクターを呼び出します。

上記のコードでは、MyBestTupleExplanation クラスを使用し、そのコンストラクターでは、親クラス Object からメソッド freeze を呼び出し、配列を渡しました。

このクラスを作成した後、MyBestTupleExplanation という名前のそのクラスのオブジェクトを作成し、コンストラクターに値を渡しました。

変数の匿名配列を作成し、その配列にタプルを割り当てました。タプル内の要素は、インデックスごとに配列に割り当てられます。後でそのタプルに値を再割り当てすると、機能しなくなります。例に示されているように、値をタプルに再割り当てすることはできません。

JavaScript タプルの例 2

class MyBestTupleExplanation extends Array {
  constructor(...items) {
    super(...items);
    Object.freeze(this);
  }
}

let tuple = new MyBestTupleExplanation('Afridi', 35);
let [myName, myAge, skinColor] = tuple;
console.debug(myName);     // Afridi
console.debug(myAge);      // 35
console.debug(skinColor);  // undefined

出力:

Afridi
35
undefined

上記の例では、変数 skinColor を作成しましたが、その値を初期化していません。そのため、未定義のエラーが発生します。