Difference between revisions of "Category:LSL List/fr"

From Second Life Wiki
Jump to navigation Jump to search
m
Line 2: Line 2:
{{LSL Header/fr}}
{{LSL Header/fr}}


Une liste est un type de données spécial qui peut contenir zéro ou plus éléments de n'importe quel autre type de données.
Une liste est un type de donnée spécial qui peut contenir zéro ou plus éléments de n'importe quel autre type de données.
 
Les listes sont notées au moyen de crochets encadrant leurs éléments, lesquels sont séparés par des virgules.
Les listes sont notées au moyen de crochets encadrant leurs éléments, lesquels sont séparés par des virgules.


Exemples de listes :
Exemples de listes :
<pre>[0, 1, 2, 3, 4]
<lsl>[0, 1, 2, 3, 4]
["Oui", "Non", "Peut-être"]
["Oui", "Non", "Peut-être"]</lsl>
[1, 14.154, "C'est sympa, hein ?", <0,0,0>]</pre>
 
(Nota bene : pour les habitués d'autres langages de programmation, il n'y a pas de tableaux 'ARRAY' en LSL, seulement des listes 'LIST')
 
'''Types de données variés'''
 
Il n'est pas obligatoire que tous les éléments d'une liste soient du même type. Dans une même liste, vous pouvez stocker des chaînes de caractères (string), des entiers (integer), des nombres à virgule (float), des vecteurs (vector), etc.
 
Exemple: //une liste avec un entier, un nombre à virgule, une chaîne de caractères et un vecteur.
<lsl>[1,14.154,"C'est sympa non ?",<0,0,0>]</lsl>
Par contre, une liste ne peut contenir une autre liste (vous ne pouvez pas imbriquer des listes).
<lsl>[1, "un", 2, "deux"] + [3, "trois"] renvoie [1, "un", 2, "deux", 3, "trois"]</lsl>
et non pas :
<lsl>[1, "un", 2, "deux", [3, "trois"]]</lsl>
 
Quand vous ajoutez un élément à une liste, la liste mémorise automatiquement quel est le type de donnée de la valeur ajoutée.
 
Habituellement, étant celui (ou celle) qui ajoute des éléments à une liste, vous savez le type de chaque élément dans la liste, et vous pouvez récupérer un élément avec la fonction appropriée llList2<type> telle que : [[llList2String/fr|llList2String]], [[llList2Vector/fr|llList2Vector]], etc. (plus de détail plus loin dans cet article.)
 
Si besoin, pour retrouver le type de donnée d'un élément d'une liste, vous pouvez utiliser la fonction [[llGetListEntryType/fr|llGetListEntryType]].
 
Astuce ! Pour ajouter un nombre à virgule ([[float/fr|float]]) dans une une liste, utilisez toujours le séparateur décimal . (1.0 et non pas 1) pour vous assurer qu'il sera bien enregistré comme nombre à virgule et non pas comme entier.
 
Une liste peut être directement transposée en chaîne de caractères (notion de cast)
<lsl>default
{
    touch_start(integer total_number)
    { 
        list a = ["abc",1,2,3.14,<0,0,0>];
        llOwnerSay((string)a); // renvoie :  abc123.140000<0.000000, 0.000000, 0.000000>
    }
}</lsl>
 
 
(A suivre ...)


Une liste peut grandir dynamiquement autant que l'on le souhaite au cours de l'exécution, dans la limite de la mémoire disponible du script. Néanmoins, il y a une limite de 72 éléments aux listes définies au moment de la compilation.
Une liste peut grandir dynamiquement autant que l'on le souhaite au cours de l'exécution, dans la limite de la mémoire disponible du script. Néanmoins, il y a une limite de 72 éléments aux listes définies au moment de la compilation.
Les listes ne peuvent pas être imbriquées.


Il est important de remarquer que la numérotation des éléments de la liste démarre à 0, pas à 1.
Il est important de remarquer que la numérotation des éléments de la liste démarre à 0, pas à 1.
Pour accéder aux éléments individuels, utilisez les fonctions llList2<type>.

Revision as of 16:15, 23 March 2009

Une liste est un type de donnée spécial qui peut contenir zéro ou plus éléments de n'importe quel autre type de données.

Les listes sont notées au moyen de crochets encadrant leurs éléments, lesquels sont séparés par des virgules.

Exemples de listes : <lsl>[0, 1, 2, 3, 4] ["Oui", "Non", "Peut-être"]</lsl>

(Nota bene : pour les habitués d'autres langages de programmation, il n'y a pas de tableaux 'ARRAY' en LSL, seulement des listes 'LIST')

Types de données variés

Il n'est pas obligatoire que tous les éléments d'une liste soient du même type. Dans une même liste, vous pouvez stocker des chaînes de caractères (string), des entiers (integer), des nombres à virgule (float), des vecteurs (vector), etc.

Exemple: //une liste avec un entier, un nombre à virgule, une chaîne de caractères et un vecteur. <lsl>[1,14.154,"C'est sympa non ?",<0,0,0>]</lsl> Par contre, une liste ne peut contenir une autre liste (vous ne pouvez pas imbriquer des listes). <lsl>[1, "un", 2, "deux"] + [3, "trois"] renvoie [1, "un", 2, "deux", 3, "trois"]</lsl> et non pas : <lsl>[1, "un", 2, "deux", [3, "trois"]]</lsl>

Quand vous ajoutez un élément à une liste, la liste mémorise automatiquement quel est le type de donnée de la valeur ajoutée.

Habituellement, étant celui (ou celle) qui ajoute des éléments à une liste, vous savez le type de chaque élément dans la liste, et vous pouvez récupérer un élément avec la fonction appropriée llList2<type> telle que : llList2String, llList2Vector, etc. (plus de détail plus loin dans cet article.)

Si besoin, pour retrouver le type de donnée d'un élément d'une liste, vous pouvez utiliser la fonction llGetListEntryType.

Astuce ! Pour ajouter un nombre à virgule (float) dans une une liste, utilisez toujours le séparateur décimal . (1.0 et non pas 1) pour vous assurer qu'il sera bien enregistré comme nombre à virgule et non pas comme entier.

Une liste peut être directement transposée en chaîne de caractères (notion de cast) <lsl>default {

   touch_start(integer total_number)
   {   
       list a = ["abc",1,2,3.14,<0,0,0>];
       llOwnerSay((string)a); // renvoie :  abc123.140000<0.000000, 0.000000, 0.000000>
   }

}</lsl>


(A suivre ...)

Une liste peut grandir dynamiquement autant que l'on le souhaite au cours de l'exécution, dans la limite de la mémoire disponible du script. Néanmoins, il y a une limite de 72 éléments aux listes définies au moment de la compilation.

Il est important de remarquer que la numérotation des éléments de la liste démarre à 0, pas à 1.