JavaScript タプルの例
Muhammad Muzammil Hussain
2023年10月12日
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
を作成しましたが、その値を初期化していません。そのため、未定義のエラーが発生します。