Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Listes Structures Cells > null

null

supprime un élément d'une liste, ou un champ d'une structure, M-liste ou T-liste

Syntaxe

List(i) = null()
Struct.field = null()

Description

List étant une liste simple, List(i)=[] déclare [] comme valeur de l'élément n° i de la liste. Ainsi, contrairement à son action sur les tableaux, [] ne peut pas ici servir de destructeur.

null() est conçue pour le faire. Elle produit un objet de type 0 et de typeof listdelete qui supprime l'objet auquel il est affecté.

Le code de surcharge est objets de typeof listdelete est 0.
L'affectation du résultat de null() à une variable supprime celle-ci. L'utilisation de clear doit cependant être préférée pour supprimer les objets nommés (tels que les variables).

Exemples

type, typeof, et code de surcharge :

type(null())
typeof(null())
null()==null()
--> type(null())
 ans  =
   0.

--> typeof(null())
 ans  =
 listdelete

--> null()==null()

Opération indéfinie pour les opérandes données.
vérifier ou définir la fonction %0_o_0 pour la surcharge.

Suppression d'un élément d'une liste :

L = list(1:10, "foo", %f, (1-%z)^2);
length(L)
L(2) = null();
length(L)
L(2)
--> length(L)
 ans  =
   4.

--> L(2) = null();

--> length(L)
 ans  =
   3.

--> L(2)
 ans  =
  F

Suppression d'un champ d'un tableau de structure :

s(2,3).r = %pi;
s(2,1).p = (1-%z)^2;
s(1,2).b = %T
s.p = null()
--> s(2,3).r = %pi;
--> s(2,1).p = (1-%z)^2;
--> s(1,2).b = %T
 s  =
  2x3 struct array with fields:
    r
    p
    b

--> s.p = null()
 s  =
  2x3 struct array with fields:
    r
    b

Suppression d'un champ d'une M-liste ou d'une T-liste : aucun destructeur n'est défini par défaut :

ML = mlist(["test" "b" "c" "rp" "t"],[%t %f], %i, 1+%s^2, ["abc" "de" "f"]);
fieldnames(ML)'
ML.rp
ML.rp = null()
--> fieldnames(ML)'
 ans  =
!b  c  rp  t  !

--> ML.rp
 ans  =
       2
   1 +s

--> ML.rp = null()

Fonction non définie pour les types fournis.
  vérifier les arguments ou définir la fonction %0_i_test pour la surcharge.
// Définissons un destructeur de champ appelé par "= null()" :

function L=%0_i_test(fieldName, Null, L)
    header = getfield(1,L)
    i = find(header==fieldName);
    if i~=[] then
        header(i) = [];
        L = setfield(1, header, L);
        L = setfield(i, null(), L);
    end
endfunction

// Utilisation :
ML.rp = null();
fieldnames(ML)'
ML.b, ML.c, ML.t
--> ML.rp = null();
--> fieldnames(ML)'
 ans  =
!b  c  t  !

--> ML.b, ML.c, ML.t
 ans  =
  T F

 ans  =
   i

 ans  =
!abc  de  f  !

Voir aussi

  • clear — Suppression de variables
  • clearglobal — supprime des variables globales
  • [] — matrice vide
  • delete — delete a graphic entity and its children.
  • xmlDelete — Delete a XML document
  • jremove — Remove a Java Object on the Java side
  • jnull — The Scilab version of the Java null object.
  • jvoid — For no argument functions
  • list — Objet Scilab, Définition d'une liste
  • mlist — Objet Scilab, définition d'une liste typée
  • tlist — Objet Scilab. Définition d'une liste typée
  • struct — creer une struct
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:59:59 CET 2019