Difference between revisions of "Set/fr"

From Free Pascal wiki
Jump to navigationJump to search
m
Line 26: Line 26:
 
RatherSlow et RatherFast sont quelques ensembles de TSpeed.
 
RatherSlow et RatherFast sont quelques ensembles de TSpeed.
  
== Manipulating sets ==
+
== Manipulation des sets ==
  
Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble: '''Include(UnEnsemble,UneValeur)''' et '''Exclude(UnEnsemble,UneValeur)'''.
+
Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble : '''Include(UnEnsemble,UneValeur)''' et '''Exclude(UnEnsemble,UneValeur)'''.
  
 
<syntaxhighlight>
 
<syntaxhighlight>
Line 53: Line 53:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Le mot-clé '''in''' est aussi utilisé pour vérifier si une valeur est dans un ensemble. Généralement, c'st de la forme:
+
Le mot-clé '''in''' est aussi utilisé pour vérifier si une valeur est dans un ensemble. Généralement, c'est de la forme:
  
 
<syntaxhighlight>
 
<syntaxhighlight>

Revision as of 16:54, 5 February 2017

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)

Introduction

Un ensemble (set) code plusieurs valeurs d'une énumération vers un type Ordinal.

Par exemple, prenons l'énumération:

  TSpeed = (spVerySlow,spSlow,spAVerage,spFast,spVeryFast);

Et cet ensemble:

  TPossibleSpeeds = set of TSpeed

TPossibleSpeeds peut être défini comme une constante entre crochets:

  const
    RatherSlow = [spVerySlow,spSlow];
    RatherFast = [spFast,spVeryFast];

RatherSlow et RatherFast sont quelques ensembles de TSpeed.

Manipulation des sets

Habituellement, deux fonctions natives du compilateur sont employées pour manipuler un ensemble : Include(UnEnsemble,UneValeur) et Exclude(UnEnsemble,UneValeur).

  var
    SomeSpeeds = TPossibleSpeeds;
  begin
    SomeSpeeds := [];
    Include(SomeSpeeds,spVerySlow);
    Include(SomeSpeeds,spVeryFast);
  end;

Les ensembles ne peuvent être directement manipulés s'ils sont des propriétés publiées d'une classe. Vous devez normalement alors faire une copie locale, la modifier et passer cette valeur au setter.

  procedure TSomething.DoSomething(Sender: TFarObject);
  var
    LocalCopy = TPossibleSpeeds;
  begin
    LocalCopy := Sender.PossibleSpeeds; // getter to local
    Include(LocalCopy,spVerySlow);
    Sender.PossibleSpeeds := LocalCopy; // local to setter.
  end;

Le mot-clé in est aussi utilisé pour vérifier si une valeur est dans un ensemble. Généralement, c'est de la forme:

  var
    CanBeSlow: Boolean;
  const
    SomeSpeeds = [Low(TSpeed)..High(TSpeed)];
  begin
    CanBeSlow := (spVerySlow in SomeSpeeds) or (spSlow in SomeSpeeds);
  end;

Les ensembles supportent aussi des opération ensemblistes sous la forme d'opérateurs décrits dans Set operators

Types de données
Types de données simples Boolean | Byte |Cardinal | Char | Currency | Extended | Int64 | Integer | Longint | Pointer | Real | Shortint | Smallint | Word
Types de données complexes Array | Class | Record | Set | String | ShortString