Syntaxe
Crée un enregistrement neuf d’un TYPE et passe les arguments à sa méthode New, le constructeur, s’il en a une.
NEW <Type>[(<arguments>)]
<name> AS <Type> = NEW <Type>(<arguments>)
METHOD New([<parameter> = <default>, …])Les éléments
| <Type> | Un TYPE déclaré dans le programme. Un nom inconnu est une erreur de compilation : « Unknown BASIC type ». |
|---|---|
| <arguments> | Les valeurs passées à la méthode New. Sans parenthèses, New s’exécute sans argument. |
| <name> | La variable qui reçoit l’enregistrement. |
| <parameter> | Un paramètre du constructeur. |
| <default> | Sa valeur par défaut. Donnez-en une à chaque paramètre de New. |
À savoir
NEWfonctionne dans une déclaration, dans une affectation ultérieure (b = NEW Counter(2)) et comme argument d’appel.- Toutes les autres créations appellent
Newsans argument :x AS T, chaque case deDIM a(n) AS T, AddElement() sur une liste d’enregistrements, une nouvelle entrée de map, un champ d’enregistrement de ce type. - Donnez donc une valeur par défaut à chaque paramètre de
New. Un paramètre typé sans valeur par défaut arrête le programme (« BASIC integer requires an integral value »), et un paramètre non typé laisse le champ sans valeur. - Une copie n’exécute pas
New:b = aetx AS T = otherrecopient les champs tels quels. - Il n’y a pas d’
AllocateStructure(PureBasic) : écrivezp AS PointouNEW Point().
Exemple
TYPE Counter value AS integer METHOD New(start AS integer = 0) SELF.value = start ENDMETHODENDTYPEa AS Counterb AS Counter = NEW Counter(7)a = NEW Counter(2)Console(Str(a.value) + " " + Str(b.value)) ' 2 7Dans le manuel : Enregistrements et méthodes