Considérations sur les types et les structures de données en Q#

1. Définir ses propres types en Q# Définir ses propres types

Un mot-clé permet de créer de nouveaux types en Q#. Il s’agit du mot-clé newType. On peut l’utiliser ainsi, au sein d’un tuple par exemple :

newtype monType = (Int, Qubit); 

Ce type monType permet de créer des instances associant un Int et un Qubit. Le support de ce type est un tuple : ce nouveau type sera donc immutable. C’est-à-dire qu’une fois l’instance créée on ne pourra pas la modifier.

À noter qu’il faut évidemment se méfier des références circulaires dans la création des types. Le code suivant entraîne irrémédiablement une erreur de compilation :

newtype monType = (Int, monType_2); 
newtype monType_2 = (Qubit, monType); 

Ces types définis par l’utilisateur sont concernés par un important changement de la version 0.3. En effet, et jusqu’à cette version, un type utilisateur était un type à part entière sans spécificité. Depuis la version 0.3 incluse, un type utilisateur est un type encapsulé (wrapped). Un nouveau symbole est lié à ces types encapsulés qui permet de les désencapsuler (unwraped). Cette nouveauté de la version 0.3 du langage fait entièrement l’objet de la partie suivante.

2. Les types encapsulés...

Pour consulter la suite, découvrez le livre suivant :
couv_DPQINF.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les structures de données
Suivant
Opérations et fonctions Q#