Syntaxe
Déclare une liste : des valeurs rangées dans l'ordre, avec un élément courant. <name>() lit ou écrit cet élément.
NewList <name>.<type>()
NewList <name>()
GLOBAL NewList <name>.<type>()
LOCAL NewList <name>.<type>()
<name>()
<name>().<field>Les éléments
| <name> | Le nom de la liste, sans sigil. Il ne peut pas être aussi le nom d'une map. |
|---|---|
| <type> | Le type des éléments : un suffixe court (.i, .f, .d, .s, .q…), un nom complet (.integer, .string, .float64), ou un nom de TYPE. Sans type, la liste contient des entiers. |
| <field> | Un champ de l'élément courant, pour une liste d'enregistrements : foes().hp = 30. |
À savoir
- Une liste neuve est vide et n'a pas d'élément courant. Lire ou affecter
<name>()arrête alors le programme :BASIC list has no current element. Ajoutez d'abord un élément avec AddElement(). - Les valeurs sont converties dans le type de la liste : une liste d'entiers range 20.9 comme 20, et
.fest sur 32 bits (0.1se relit0.10000000149011612). Prenez.dpour la pleine précision. NewList names$()est refusé dès le premier usage denames(). Écrivez le type après un point :NewList names.s().+=sur l'élément courant etINC l()compilent en un programme qui ne démarre pas. Écrivezl() = l() + 5.- Un nouveau
NewListsur le même nom crée une liste neuve et vide. UnNewListdans une FUNCTION appartient à cet appel. - Dans un programme avec
DO … LOOP, une FUNCTION ne voit pas une liste déclarée au-dessus deDO(… is not defined). Déclarez-la avecGLOBAL NewList.
Exemple
NewList scores.i()AddElement(scores())scores() = 10AddElement(scores())scores() = 30FirstElement(scores())AddElement(scores())scores() = 20.9FOREACH scores() Console(Str(ListIndex(scores())) + ": " + Str(scores())) ' 0: 10, then 1: 20, then 2: 30NEXTConsole(Str(ListSize(scores()))) ' 3Dans le manuel : Tableaux, listes et maps