Exemple de tuple JavaScript
En langage JavaScript, les tuples sont des types de tableau avec des fonctionnalités immuables. Nous pouvons accéder à un tuple avec une seule variable qui est un type de tableau
.
Tuple en 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
Production :
Afridi
35
White
******************************************
Now we are re-assigning the values to tuple
******************************************
Afridi
35
White
Dans l’exemple ci-dessus, nous avons créé une classe nommée MyBestTupleExplanation
, héritée de la classe Array
. Il se comportera comme un tableau mais avec des fonctionnalités d’immuabilité. Dans cette classe, on appelle le constructeur de la classe Array
avec la méthode super
.
Dans le code ci-dessus, nous avons utilisé la classe MyBestTupleExplanation
, et dans son constructeur, nous avons appelé la méthode freeze
de la classe parente Object
et lui avons passé un tableau.
Après avoir créé cette classe, nous avons créé l’objet de cette classe nommé MyBestTupleExplanation
et transmis les valeurs via le constructeur.
Nous avons créé un tableau anonyme de variables et assigné notre tuple à ce tableau. Les éléments du tuple seront assignés par index au array
. Cela ne fonctionnera pas si nous réaffectons les valeurs à ce tuple plus tard. Comme le montre l’exemple, nous ne pouvons pas réaffecter les valeurs au tuple.
JavaScript Tuple Exemple 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
Production :
Afridi
35
undefined
Dans l’exemple ci-dessus, nous avons créé une variable skinColor
mais sans initialiser sa valeur ; c’est pourquoi nous obtenons une erreur indéfinie.