articles/dicorebol-fr/array.txt · Dernière modification: 07/05/2005 00:19

EN: rebol.com - rebol.org - rebol.net -
FR: Rebol Documentation Project - forum RebelBB - rebol-france.org - forum codeur -

 

Array - Détail de la fonction

En résumé :

Crée et initialise une série d’une taille donnée.

Utilisation :

array size

Argument :

size - Taille ou bloc de tailles pour chaque dimension (type: integer! block!)

Raffinement :

/initial - Spécifie une valeur initiale pour tous les éléments

value - Valeur initiale

Description :

En REBOL, les tableaux sont simplement des blocs initialisés à une taille spécifique avec tous les éléments portant une valeur initiale (NONE par défaut.) La fonction ARRAY est utilisée pour créer et initialiser des tableaux.

Un entier (integer!) fourni comme argument à ARRAY créera un tableau d’une seule dimension. L’exemple ci-dessous crée un tableau de cinq éléments ayant leurs valeurs mises à NONE:

    block: array 5
    probe block
    [none none none none none]
    print length? block
    5

Pour initialiser un tableau avec des valeurs autres que NONE, utilisez le raffinement /INITIAL. L’exemple qui suit initialise un bloc avec des valeurs à zéro:

    block: array/initial 5 0
    probe block
    [0 0 0 0 0]

Pour créer un tableau à multiple dimensions, fournissez un bloc d’entiers (integer!) comme argument à la fonction ARRAY. Chaque entier spécifie la taille de cette dimension du tableau. (En REBOL, ces tableaux multidimensionnels sont créés avec des blocs de blocs.)

    xy-block: array [2 3]
    probe xy-block
    [[none none none] [none none none]]
    xy-block: array/initial [2 3] 0
    probe xy-block
    [[0 0 0] [0 0 0]]

Une fois qu’un tableau a été créé, vous pouvez utiliser les chemins ou les fonctions PICK et POKE pour définir et lire les valeurs du bloc selon leurs indices:

    block/3: 1000
    poke block 5 now
    probe block
    [0 0 1000 0 9-Mar-2004/0:59:44-8:00]
    probe block/3
    1000
    repeat n 5 [poke block n n]
    probe block
    [1 2 3 4 5]
    xy-block/2/1: 1.2.3
    xy-block/1/3: copy "test"
    probe xy-block
    [[0 0 "test"] [1.2.3 0 0]]
    probe xy-block/2/1
    1.2.3
    repeat y 2 [
        dim: pick xy-block y
        repeat x 3 [poke dim x to-pair reduce [x y]]
    ]
    probe xy-block
    [[1x1 2x1 3x1] [1x2 2x2 3x2]]

Concernant le style de programmation: REBOL utilise le concept des SERIES extensibles pour contenir et manipuler les données, au lieu du concept des tableaux de taille fixe. Par exemple, vous écriveriez normalement en REBOL:

    block: copy []
    repeat n 5 [append block n]

plutôt que:

    block: array 5
    repeat n 5 [poke block n n]

En d’autres mots, REBOL ne vous demande pas de spécifier la taille des tableaux de données (blocs, caractères, ou chaînes de caractères) en avance. Il sont dynamiques.

Fonctions en relation :

make - Construit et retourne une nouvelle valeur.

pick - Retourne la valeur à la position spécifiée dans une série.

poke - Retourne la valeur après avoir changé la donnée à l’index spécifié. (cf. manuel)

Version anglaise officielle :

 
  articles/dicorebol-fr/array.txt · Dernière modification: 07/05/2005 00:19
 
Fil RSS: Recent changes RSS feed
Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
Hébergement par Spinodo