From OFSET Wiki
Traduction de Squeak Smalltalk: Classes Reference
[edit] Classes et méthodes fondamentales
[edit] Classe Object (opérations qui concernent tous les objets)
[edit] Création d’instances (méthode de classe)
| Message
| Description
| Note
|
new
| Renvoie une nouvelle instance du receveur (qui est une classe). C’est la façon courante de créer un nouvel objet. new est habituellement redéfini dans les sous-classes pour obtenir un comportement spécifique.
| 1,2
|
basicNew
| Cette primitve est appelée pour implementer new.
| 3
|
new: unEntier
| Renvoie une nouvelle instance du receveur (qui est une classe), de taille unEntier. Autorisé seulement si l’indication de la taille a un sens.
| 4
|
Notes :
- [1] - Le corps d’une méthode
new est généralement ^super new. N’oubliez pas de le taper côté classe, et d’inclure le signe ^. Attention à utiliser super, et non self !
- [2] - Vous ne devez pas implémenter
new si cela n’a pas de sens. Consultez par exemple Boolean class>>new ou MappedCollection class>>new
- [3] -
basicNew est là pour vous permettre de continuer à produire des instances même si une superclasse a redéfini new. Vous ne devez donc jamais redéfinir basicNew tant que vous n’êtes pas devenu un gourou Squeak.
- [4] - Si vous avez besoin d’un paramètre autre que la taille, choisissez un nom plus évocateur que
new: vous trouverez un exemple dans le protocole de création d’instances pour les classes Pen et Rectangle.
[edit] Comparer des objets
| Message
| Description
| Note
|
== unObjet
| Le receveur et l’argument sont-ils le même objet ? (la réponse est true ou false)
| 1
|
~~ unObjet
| Le receveur et l’argument sont-ils des objets différents ?
| 1
|
= unObjet
| Le receveur et l’argument sont il égaux ? Le sens exact de l’égalité dépend de la classe du receveur.
| 2
|
~= unObjet
| Le receveur et l’argument sont il différents ?
| 2
|
hash
| Renvoie unPetitEntier dont la valeur est liée à la valeur du receveur.
| 2
|
Notes :
- [1] - Normalement, aucune autre classe ne devrait redéfinir
== et ~~ .
- [2] - Comme certaines classes (
Set et Dictionary en particulier) utilisent le fait que hash renvoie la même valeur pour des objets égaux, vous devriez redéfinir hash chaque fois que vous redéfinissez =. (a=b) implique forcément (a hash = b hash). La réciproque n'est en général pas vraie.
[edit] Tester des objets
| Message
| Description
| Note
|
isNil
| Le récepteur a-t-il une valeur nulle ? (répond true ou false)
| 1
|
notNil
| Le récepteur a-t-il une valeur non-nulle ?
| 1
|
ifNil: unBloc
| Évalue unBloc; si le receveur a une valeur nulle, et si oui renvoie la valeur de unBloc. Dans le cas contraire, renvoie le receveur.
| 2
|
ifNotNil: unBloc
| Évalue unBloc; si le receveur a une valeur non-nulle, et renvoie la valeur de unBloc. Dans le cas contraire, renvoie le receveur, c'est-à-dire nil.
| 2
|
ifNotNilDo: unBloc
| Si le receveur à une valeur non-nulle, évalue unBloc avec le receveur pour argument. Renvoie le receveur.
| 3
|
Notes :
- [1] -
unObjet isNil est préférable à unObjet == nil ; de même pour unObjet notNil et unObjet ~~ nil.
- [2] -
unObjet ifNil: [...] est préférable à unObjet isNil ifTrue: [...]
- [3] -
ifNotNilDo: unBloc est utile lorsque le receveur est une expression complexe, par exemple :
self filsGauche filsDroit ifNotNilDo: [:noeud | noeud equilibrer]
[edit] Copier des objets
| Message
| Description
| Note
|
copy
| Renvoie une instance identique au receveur. Il est courant pour une sous-classes de redéfinir cette méthode mais non de redéfinir shallowCopy.
|
|
shallowCopy
| Renvoie une copie du receveur qui partage les variables d’instance du receveur.
|
|
deepCopy
| Renvoie une copie du receveur avec une copie de chacune de ses variables d’instance.
|
|
veryDeepCopy
| Effectue une copie complète de l’arbre à l’aide d’un dictionnaire. Un objet présent deux fois dans l’arbre n’est copié qu’une seule fois et partagé par ses deux référents.
|
|
[edit] Envoyer des messages aux objets
| Message
| Description
| Note
|
perform: unSymbole
| Envoie un sélecteur unaire, unSymbole, au receveur. Signale une erreur si le nombre d'arguments attendus par le sélecteur n'est pas zéro.
|
|
perform: unSymbole with: unObjet
| Envoie le sélecteur unSymbole au receveur avec l'argument unObjet. Échoue si le nombre d'arguments attendus par le sélecteur n'est pas un.
| 1
|
perform: unSymbole withArguments: tableauArguments
| Envoie le sélecteur unSymbole au receveur avec les arguments dans tableauArguments. Échoue si le nombre d'arguments attendus par le sélecteur ne correspond pas à la taille de tableauArguments.
|
|
Note :
- [1] - Avec Squeak, un objet reconnait aussi
#perform:with:with: et #perform:with:with:with, qui sont des spécialisations de #perform:withArguments: pour des tableaux de deux ou trois éléments.
[edit] Indexer des objets
| Message
| Description
| Note
|
at: indice
| Renvoie la valeur du indice-ième élément du receveur. Signale une erreur si l'indice n'est pas un entier ou est en dehors des limites.
|
|
at: indice put: unObjet
| Enregistre unObjet dans le receveur à la position indice. Signale une erreur si indice n'est pas un entier ou est en dehors des limite. Renvoie unObjet.
|
|
at: indice modify: unBloc
| Remplace le indice-ième élément du receveur par ce même élément transformé par unBloc.
|
|
size
| Renvoie le nombre d'éléments indexables dans le receveur. Cette valeur est identique à l'indice du plus grand élément présent.
|
|
[edit] Afficher et enregistrer des objets
| Message
| Description
| Note
|
printString
| Renvoie une chaîne (String) dont les caractères décrivent le receveur.
|
|
printOn: unFlot
| Rajoute à unFlot (de type Stream) une chaîne dont les caractères décrivent le receveur.
|
|
storeString
| Renvoie une chaîne à partir de laquelle le receveur peut être reconstruit.
|
|
storeOn: unFlot
| Rajoute à unFlot une chaîne à partir de laquelle le receveur peut être reconstruit.
|
|
[edit] Interroger des objets
| Message
| Description
| Note
|
class
| Renvoie la classe du receveur (un objet).
|
|
isKindOf: uneClasse
| Le receveur est-il une instance de uneClasse ou l'une de ses sous-classes ?
|
|
isMemberOf: uneClasse
| Le receveur est-il une instance de uneClasse ? (Équivaut à receveur class == uneClasse)
|
|
respondsTo: unSelecteur
| Peut-on trouver une méthode pour unSelecteur, soit dans la classe du receveur, soit dans l'une de ses super-classes ?
|
|
canUnderstand: unSelecteur
| Le receveur, qui doit être une classe, dispose-t-il d'une méthode pour unSelecteur ? La méthode peut appartenir au receveur lui-même ou à l'une de ses super-classes.
|
|
[edit] Messages divers auxquels répondent les objets
| Message
| Description
| Note
|
yourself
| Retourne l'objet lui-même.
| 1
|
asString
| Retourne le receveur auquel on a appliqué la méthode printString.
|
|
doesNotUnderstand: unSymbole
| Rapporte que le receveur ne comprend pas de message ayant pour sélecteur unSymbole.
|
|
error: uneChaine
| Signale une erreur (de type Error).
|
|
halt
| Arrête l'exécution.
| 2
|
Notes :
- [1] - Le message
yourself (littéralement: toi-même) est essentiellement utilisé comme dernier message dans une cascade, lorsque l'avant-dernier message renvoie un objet autre que le receveur. Par exemple, #(1 2 3 5) at: 4 put: 4 revoie 4, l'objet qui a été rangé, alors que #(1 2 3 5) at: 4 put: 4; yourself renvoie #(1 2 3 4), le receveur.
- [2] -
self halt est la méthode usuelle pour forcer l'ouverture du débogueur. L'exécution peut ensuite reprendre.
[edit] Classe Boolean
Cette classe abstraite représente les valeurs logique et fournit des opérateur booléens ainsi que des structures de contrôle conditionnelles. Elle a deux sous-classes, True et False, chacune d'entre elles disposant d'instances singletons représentées par les mots-clefs true (vrai) et false (faux) respectivement.
[edit] Opérateurs booléens évaluant et non-évaluant
| Message
| Description
| Note
|
& unBooleen
| Conjonction logique évaluante (ET). Évalue l'argument unBooleen, puis renvoie true si l'argument et le receveur sont simultanément vrais.
|
|
| unBooleen
| Disjonction logique évaluante (OU). Évalue l'argument unBooleen, puis renvoie true si l'argument ou le receveur (ou les deux) sont vrais.
|
|
eqv: unBooleen
| Renvoie true si le receveur est équivalent à unBooleen.
|
|
not
| Négation logique. Renvoie true si le receveur est false, renvoie false si le receveur est true.
|
|
xor: unBooleen
| OU exclusif évaluant. Évalue l'argument unBooleen, puis renvoie true si l'argument ou le receveur (mais pas les deux simultanément) sont vrais. Il revient au même de dire que cette méthode renvoie true si le receveur n'est pas équivalent à unBooleen.
|
|
and: blocAlternatif
| Conjonction logique non évaluante. Si le receveur est true, renvoie la valeur de blocAlternatif; sinon, renvoie false sans évaluer le blocAlternatif.
|
|
or: blocAlternatif
| Disjonction logique non évaluante. Si le receveur est false, renvoie la valeur de blocAlternatif; sinon, renvoie true sans évaluer le blocAlternatif.
|
|
[edit] Classe Magnitude
Cette classe abstraite regroupe, entre autres classes, les nombres (Numbers), les caractères (Characters), les dates et l'heure (Date et Time). Elle sert à toutes les classes dont les instances peuvent être ordonnées linéairement.
| Message
| Description
| Note
|
< uneMagnitude
| Le receveur est-il strictement plus petit que l'argument ?
|
|
> uneMagnitude
| Le receveur est-il strictement plus grand que l'argument ?
|
|
<= uneMagnitude
| Le receveur est-il plus petit ou égal à l'argument ?
|
|
>= uneMagnitude
| Le receveur est-il plus grand ou égal à l'argument ?
|
|
between: min and: max
| Le receveur est-il entre min et max, c'est-à-dire est-il plus grand ou égal à l'argument min et plus petit ou égal à l'argument max ?
|
|
min: uneMagnitude
| Renvoie du receveur ou de l'argument celui ayant la plus petite magnitude.
|
|
max: uneMagnitude
| Renvoie du receveur ou de l'argument celui ayant la plus grande magnitude.
|
|
min: magnitude1 max: magnitude2
| Prend du receveur ou de l'argument magnitude1 celui ayant la plus petite magnitude, puis renvoie de cette magnitude ou de l'argument magnitude2 celui ayant la plus grande magnitude.
|
|
[edit] Classe Character
Squeak utilise son propre jeu de 256 caractères, qui peut différer de celui de la plateforme hôte. Les instances de la classe Character contiennent un code de caractère codé en 8 bits.
- Les caractères entre 0 et 127 sont ceux correspondant à la norme ASCII, à part quelques exceptions: la flèche d'affectation remplace le tiret bas (underscore), et les caractères pour enter, insert (insertion), page up (page haut), page down (page bas), home (début) et les quatre flèches de direction remplacent certains caractères ASCII. Ces caractères sont accessibles sous Squeak en utilisant des méthodes de la classe
Character.
- Les caractères entre 128 et 255 ne sont pas tous affectés. Divers symboles tels les puces, marques déposées (TM), copyrights (c), cents, euros et yen, diphtongues et un certain nombre de caractères accentués ainsi que l'espace insécable (caractère nbsp) correspondent au codage sous Macintosh, mais ils ne sont pas tous présents.
- Le jeu de caractères complet peut être visualisé en effectuant un printIt sur
Character allCharacters.
[edit] Méthodes pour créer des instances (côté classe)
La plupart du temps, les caractères littéraux $a, $b, etc. sont utilisés de préférence aux méthodes de classe. Les exceptions notables sont dues aux caractères non imprimables listés ci-dessous. Un programme ne devrait jamais avoir à dépendre des détails d'encodage des caractères.
| Message
| Description
| Note
|
value: n
| n doit être un entier compris entre 0 et 255. Renvoie le caractère dont le code est n.
| 1
|
digitValue: x
| Renvoie le caractère correspondant au chiffre x. Par exemple, renvoie $9 pour x=9, $0 pour x=0, $A pour x=10, $Z pour x=35.
|
|
arrowDown(flèche bas) arrowLeft(flèche gauche) arrowRight(flèche droite) arrowUp(flèche haut) backspace(effacement arrière) cr(retour chariot) delete(effacement) end(fin) enter(entrée) escape(échapement) euro(euro) home(début) insert(insertion) lf(nouvelle ligne) linefeed(nouvelle ligne) nbsp(espace insécable) newPage(nouvelle page) pageDown(page bas) pageUp(page haut) space(espace) tab(tabulation)
| Renvoie le caractère approprié.
|
|
Note :
- [1] - L'invariant
(Character value: n) asciiValue = n est vrai pour tout entier dans l'intervalle [0..255].
[edit] Méthodes pour accéder aux caractères
| Message
| Description
| Note
|
asciiValue
| Renvoie la valeur d'encodage du receveur. Ce n'est pas réellement un code ASCII, contrairement à ce que pourrait laisser penser le nom de cette méthode !
| 1
|
digitValue
| Renvoie 0-9 si le receveur est $0-$9; 10-35 si celui-ci est $A-$Z; un nombre négatif dans le cas contraire. Cela sert pour l'analyse syntaxique des chiffres de base 2 à 36.
|
|
Note :
- [1] - Les instances de la classe
Character ont une propriété d'unicité: les instances égales (au sens de "=") sont identiques (au sens de "=="). C'est-à-dire a asciiValue == b asciiValue si et seulement si a == b.
[edit] Méthodes pour tester les caractères
| Message
| Description
| Note
|
isAlphanumeric
| Le receveur est-il une lettre ou un chiffre ?
|
|
isDigit
| Le receveur est-il un chiffre ?
|
|
isLetter
| Le receveur est-il une lettre ?
|
|
isLowerCase
| Le receveur est-il une lettre en minuscule ?
|
|
isSeparator
| Le receveur est-il l'un des caractères suivant: space(espace), cr(retour chariot), tab(tabulation), linefeed(nouvelle ligne) ou formfeed(nouvelle page).
|
|
isSpecial
| Le receveur est-il l'un des caractères spéciaux ?
|
|
isUppercase
| Le receveur est-il une lettre en majuscule ?
|
|
isVowel
| Le receveur est-il une voyelle, AEIOU, en majuscule ou en minuscule ?
|
|
tokenish
| Le receveur est-il un caractère de mot-clef (token) valide (lettre, chiffre, double point) ?
|
|
[edit] Méthodes de conversion de caractères
| Message
| Description
| Note
|
asLowercase
| Si le receveur est une lettre en majuscule, renvoie la lettre en minuscule correspondante.
|
|
asUppercase
| Si le receveur est une lettre en minuscule, renvoie la lettre majuscule correspondante.
|
|
[edit] Classes et méthodes des nombres
[edit] Classe Number
Cette classe abstraite regroupe les entiers (Integer), les réels à virgule flottante (Float) et les fractions (Fraction). Number est une sous-classe de Magnitude.
[edit] Méthodes arithmétiques pour toutes les classes numériques
| Message
| Description
| Note
|
+ unNombre
| Renvoie la somme du receveur et de unNombre.
|
|
- unNombre
| Renvoie la différence du receveur et de unNombre.
|
|
* unNombre
| Renvoie le produit du receveur et de unNombre.
|
|
/ unNombre
| Renvoie le résultat de la division du receveur par unNombre, en essayant de conserver autant de précision que possible. Si le résultat n'est pas exact, la réponse sera une fraction (Fraction) ou un réel à virgule flottante (Float) selon le cas. Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
// unNombre
| Renvoie le résultat de la division du receveur par unNombre, en tronquant par valeur inférieure. Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
\\ unNombre
| Renvoie le reste obtenu en divisant le receveur par unNombre, en tronquant par valeur inférieure. C'est le classique opérateur modulo. Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
quo: unNombre
| Renvoie le résultat de la division du receveur par unNombre, en tronquant vers zéro. Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
rem: unNombre
| Renvoie le reste obtenu en divisant le receveur par unNombre, en tronquant vers zéro. Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
abs
| Renvoie la valeur absolue du receveur.
|
|
negated
| Renvoie l'opposé (négation) du receveur.
|
|
reciprocal
| Renvoie l'inverse (1 divisé par le receveur). Signale une erreur de division par zéro (ZeroDivide) si l'argument unNombre est zéro.
|
|
[edit] Méthodes implémentant les fonction mathématiques sur les nombres
| Message
| Description
| Note
|
exp
| Renvoie l'exponentielle du receveur.
|
|
ln
| Renvoie le logarithme népérien du receveur.
|
|
log: unNombre
| Renvoie le logarithme en base unNombre du receveur.
|
|
floorLog: unNombre
| Renvoie la troncature par valeur inférieure du logarithme en base unNombre du receveur.
|
|
raisedTo: unNombre
| Renvoie le receveur élevé à la puissance unNombre.
|
|
raisedToInteger: unEntier
| Renvoie le receveur élevé à la puissance unEntier. Signale une erreur si unEntier n'est pas un entier.
|
|
sqrt
| Renvoie la racine carrée du receveur.
|
|
squared
| Renvoie le carré du receveur (c'est-à-dire le receveur multiplié par lui-même).
|
|
[edit] Méthodes pour tester des nombres
| Message
| Description
| Note
|
even
| Le receveur est-il pair ?
|
|
odd
| Le receveur est-il impair ?
|
|
negative
| Le receveur est-il négatif (strictement inférieur à zéro) ?
|
|
positive
| Le receveur est-il positif (plus grand ou égal à zéro) ?
|
|
strictlyPositive
| Le receveur est-il strictement supérieur à zéro ?
|
|
sign
| Renvoie 1 si le receveur est strictement positif, 0 s'il est égal à zéro, et -1 s'il est strictement négatif.
|
|
isZero
| Le receveur est-il égal à zéro ?
|
|
[edit] Méthodes pour tronquer et arrondir les nombres
| Message
| Description
| Note
|
ceiling
| Renvoie l'entier supérieur le plus proche du receveur.
|
|
floor
| Renvoie l'entier inférieur le plus proche du receveur.
|
|
truncated
| Renvoie la troncature à l'entier le plus proche du receveur (vers zéro).
|
|
truncateTo: unNombre
| Renvoie le multiple de unNombre qui est le plus proche du receveur (vers zéro).
|
|
rounded
| Renvoie l'entier le plus proche du receveur.
|
|
roundTo: unNombre
| Renvoie le multiple de unNombre qui est le plus proche du receveur.
|
|
roundUpTo: unNombre
| Renvoie le multiple de unNombre qui est le plus proche du receveur (par valeur supérieure).
|
|
[edit] Méthodes pour la trigonométrie sur les nombres
| Message
| Description
| Note
|
sin
| Renvoie le sinus du receveur exprimé en radians.
|
|
cos
| Renvoie le cosinus du receveur exprimé en radians.
|
|
tan
| Renvoie la tangente du receveur exprimé en radians.
|
|
degreeSin
| Renvoie le sinus du receveur exprimé en degrés.
|
|
degreeCos
| Renvoie le cosinus du receveur exprimé en degrés.
|
|
arcSin
| Renvoie l'angle en radians dont le sinus est donné par le receveur.
|
|
arcCos
| Renvoie l'angle en radians dont le cosinus est donné par le receveur.
|
|
arcTan
| Renvoie l'angle en radians dont la tangente est donnée par le receveur.
|
|
arcTan: denominateur
| Renvoie l'angle en radians dont la tangente est donnée par le receveur divisé par denominateur.
|
|
degreesToRadians
| Renvoie le receveur en radians. Suppose que celui-ci est exprimé en degrés.
|
|
radiansToDegrees
| Renvoie le receveur en degrés. Suppose que celui-ci est exprimé en radians.
|
|
[edit] Classe Integer
[edit] Méthodes pour l'arithmétique sur les entiers
| Message
| Description
| Note
|
isPowerOfTwo
| Le receveur est-il une puissance de deux ?
|
|
factorial
| Renvoie la factorielle du receveur.
|
|
gcd: unEntier
| Renvoie le PGCD (Plus Grand Commun Diviseur) du receveur et de l'argument unEntier
|
|
lcm: unEntier
| Renvoie le PPCM (Plus Petit Commun Multiple) du receveur et de l'argument unEntier
|
|
take: r
| Renvoie le nombre de combinaisons du receveur, lorsqu'on en prend r à la fois. Par exemple, 6 take: 3 vaut 6*5*4/(1*2*3). Renvoie zéro en dehors du triangle de Pascal.
|
|
[edit] Méthodes de manipulation de bits sur les entiers
Une panoplie d'opérateurs de manipulation de bits est disponible sur les entiers. Ils ne sont que rarement utilisés cependant, et ne sont par conséquent pas décrits ici. Il est possible de les examiner à l'aide d'un navigateur de classes.
[edit] Classes et méthodes des collections
[edit] La hiérarchie des collections
| Classe
| Description
|
| <code>Collection
| Classe abstraite pour toutes les collections.
|
Bag(sac)
| Collection d'objets non-ordonnés et non-indexés.
|
Set(ensemble)
| Collection d'objets uniques non-ordonnés, non-indexés.
|
Dictionary(dictionnaire)
| Ensemble d'associations (les valeurs sont indexables par des clefs)
|
IdentityDictionary
| Dictionnaire, mais les comparaisons sont faites en utilisant ==.
|
IdentitySet
| Ensemble, mais les comparaisons sont faites en utilisant ==.
|
SequenceableCollection
| Collection ordonnée, indexée par des entiers.
|
OrderedCollection
| L'ordre des éléments est déterminé par la manière dont ils sont ajoutés/retirés de la collection.
|
SortedCollection
| L'ordre des éléments est déterminé par la valeur d'un blocDeComparaison.
|
LinkedList
| SequenceableCollection homogène de liens (Link) qui sont des conteneurs vers d'autres objets. Peut-être utilisé en tant que pile ou queue.
|
Interval
| Suite homogène d'entiers en progression arithmétique.
|
ArrayedCollection
| Collection ordonnée, indexée par un intervalle d'entiers.
|
Array
| ArrayedCollection d'objets arbitraires.
|
Array2D
| Collection homogène d'ArrayedCollection d'Arrays.
|
ByteArray
| ArrayedCollection homogène d'octets (entre 0 et 255).
|
FloatArray
| ArrayedCollection homogène de nombres à virgule flottante (Float)
|
IntegerArray
| ArrayedCollection homogène d'entiers signés sur 32 bits.
|
PointArray
| ArrayedCollectionhomogène de points (Point) dont les coordonnées sont des valeurs sur 32 bits.
|
RunArray
| ArrayedCollection homogène d'entiers signés sur 32 bits (représentation RLE (Run Length Encoded) clairsemée).
|
ShortIntegerArray
| ArrayedCollection homogène d'entiers signés sur 16 bits.
|
ShortPointArray
| ArrayedCollectionhomogène de points (Point) dont les coordonnées sont des valeurs sur 16 bits.
|
ShortRunArray
| ArrayedCollection homogène d'entiers signés sur 16 bits (représentation RLE (Run Length Encoded) clairsemée).
|
String
| ArrayedCollectionhomogène de caractères, c'est-à-dire une chaîne de caractères.
|
Symbol
| Chaîne de caractères ayant la propriété d'instance unique (il ne peut y avoir qu'une seule instance d'un symbole donné dans une image).
|
Text
| ArrayedCollectionhomogène de caractères avec les attributs du texte associés.
|
WordArray
| ArrayedCollectionhomogène d'entiers non-signés sur 32 bits.
|
Heap
| Comme une SortedCollection, mais les informations sont stockées dans un tas (heap). Voir Heapsort.
|
MappedCollection
| Moyen d'accéder à une collection indexable en utilisant une application allant d'une collection de clefs externes vers les clefs internes de la collection. La MappedCollection peut alors être utilisée directement, en indexant et modifiant la collection accédée à partir des clefs externes.
|
[edit] Classe Collection
[edit] Méthodes pour créer des collections (côté classe)
| Message
| Description
| Notes
|
with: unObjet
| Renvoie une instance du receveur contenant unObjet.
|
|
with: premierObjet with: secondObjet
| Renvoie une instance du receveur contenant tous les arguments en tant qu'éléments (Squeak reconnait des créateurs d'instances de ce genre ayant jusqu'à six clauses with:).
|
|
withAll: uneCollection
| Renvoie une instance du receveur contenant tous les éléments de uneCollection.
|
|
[edit] Méthodes pour tester les collections
| Message
| Description
| Notes
|
isEmpty
| Le receveur est-il vide (ne contient-il aucun élément) ?
|
|
occurencesOf: unObjet
| Renvoie le nombre d'éléments du receveur qui sont égaux à unObjet.
|
|
anySatisfy: unBloc
| Évalue unBloc sur tous les éléments du receveur. Si ce bloc renvoie true (vrai) pour au moins un des éléments, alors cette méthode renvoie true. Sinon, elle renvoie false (faux).
|
|
allSatisfy: unBloc
| Évalue unBloc sur tous les éléments du receveur. Si ce bloc renvoie true pour tous les éléments, alors cette méthode renvoie true. Sinon, elle renvoie false.
|
|
includes: unObjet
| unObjet est-il l'un des éléments du receveur ?
|
|
includesAllOf: uneCollection
| Tous les éléments de uneCollection sont-ils dans le receveur ?
|
|
includesAnyOf: uneCollection
| Un au moins des éléments de uneCollection est-il dans le receveur ?
|
|
[edit] Méthodes pour ajouter ou retirer des éléments d'une collection
| Message
| Description
| Notes
|
anyOne
| Renvoie un des éléments du receveur (n'importe lequel). Signale une erreur si le receveur est vide.
|
|
add: nouvelObjet
| Place nouvelObjet comme nouvel élément du receveur. Renvoie nouvelObjet. Les tableaux (ArrayedCollection) ne peuvent pas répondre à ce message.
|
|
addAll: uneCollection
| Ajoute tous les éléments de uneCollection comme nouveaux éléments du receveur. Renvoie uneCollection.
|
|
remove: ancienObjet
| Retire un exemplaire de ancienObjet parmi les éléments du receveur. Si plusieur éléments du receveur sont égaux à ancienObjet, un seul sera retiré. Renvoie ancienObjet, à moins qu'aucun élément ne lui soit égal. Dans ce cas, signale une erreor.
|
|
remove: ancienObjet ifAbsent: unBlocException
| Retire un exemplaire de ancienObjet parmi les éléments du receveur. Si plusieur éléments du receveur sont égaux à ancienObjet, un seul sera retiré. Si aucun élément n'est égal à ancienObjet, renvoie le résultat de l'évaluation de unBlocException. Sinon, renvoie ancienObjet.
|
|
removeAll: uneCollection
| Retire un exemplaire de chaque élément de uneCollection parmi les éléments du receveur. En cas de succès pour chaque élément, renvoie uneCollection. Sinon, signale une erreur.
|
|
removeAllFoundIn: uneCollection
| Retire un exemplaire de chaque élément de uneCollection parmi les éléments du receveur, à condition qu'ils y soient présents. Aucune erreur n'est signalée dans le cas contraire. Renvoie uneCollection.
|
|
removeAllSuchThat: unBloc
| Évalue unBloc sur tous les éléments du receveur, et retire cet élément si le bloc renvoie true (vrai).
|
|
difference: secondeCollection
| Renvoie une nouvelle collection obtenue en prenant les éléments du receveur qui ne sont pas présents dans secondeCollection. Il s'agit de la différence symétrique ensembliste.
|
|
[edit] Méthodes pour énumérer les collections
| Message
| Description
| Notes
|
do: unBloc
| Évalue unBloc pour chaque élément du receveur (avec celui-ci comme argument).
|
|
do: unBloc seperatedBy: blocSeparateur
| Évalue unBloc pour chaque élément du receveur (avec celui-ci comme argument). S'il y a plus d'un élément, évalue blocSeparateur (sans arguments) entre chaque paire d'éléments du receveur.
|
|
select: unBlocPredicat
| Évalue unBlocPredicat pour chaque élément du receveur (avec celui-ci comme argument). Tous les éléments pour lesquels le bloc renvoie true (vrai) seront regroupés dans une nouvelle collection de même type que le receveur. Renvoie la nouvelle collection.
|
|
reject: unBlocPredicat
| Évalue unBlocPredicat pour chaque élément du receveur (avec celui-ci comme argument). Tous les éléments pour lesquels le bloc renvoie false (faux) seront regroupés dans une nouvelle collection de même type que le receveur. Renvoie la nouvelle collection.
|
|
collect: unBlocApplication
| Applique unBlocApplication sur chaque élément du receveur. Les résultats sont regroupés dans une nouvelle collection de même type que le receveur. Renvoie la nouvelle collection.
|
|
detect: unBlocPredicat
| Évalue unBlocPrédicat sur chaque élément du receveur. Renvoie le premier élément pour lequel l'évaluation donne true. Signale une erreur si aucun n'est trouvé.
|
|
detect: unBlocPredicat ifNone: unBlocException
| Évalue unBlocPrédicat sur chaque élément du receveur. Renvoie le premier élément pour lequel l'évaluation donne true. Si aucun n'est trouvé, renvoie le résultat de l'évaluation de unBlocException.
|
|
inject: valeurInitiale into: blocBinaire
| Accumule une valeur courante associée à l'évaluation de blocBinaire. La valeur courante est tout d'abord initialisée à valeurInitiale. À chaque étape, la valeur courante et le prochain élément du receveur sont donnés en arguments à blocBinaire. Renvoie la dernière valeur courante.
| 1
|
collect: unBlocApplication thenSelect: unBlocPredicat
| Évalue unBlocApplication sur chaque élément du receveur. Les résultats qui satisfont à unBlocPredicat (c'est-à-dire pour lesquels unBlocPredicat renvoie true) sont regroupés dans une nouvelle collection de même type que le receveur. Renvoie la nouvelle collection.
|
|
select: unBlocPredicat thenCollect: unBlocApplication
| Évalue unBlocApplication sur tous les éléments du receveur qui satisfont à unBlocPredicat, et regroupe les résultats dans une nouvelle collection de même type que le receveur. Renvoie la nouvelle collection.
|
|
count: unBlocPredicat
| Renvoie le nombre d'éléments du receveur qui satisfont à unBlocPredicat.
|
|
Note :
- [1] - Par exemple, pour calculer la somme des éléments d'une collection de nombres, utiliser
uneCollection inject: 0 into: [:sousTotal :prochain | sousTotal + prochain].
[edit] Classe Bag
[edit] Méthodes pour accéder aux sacs (Bag)
| Message
| Description
| Notes
|
add: nouvelObjet withOccurences: unEntier
| Ajoute nouvelObjet au receveur. Fait comme si l'opération était répétée unEntier fois. Renvoie nouvelObjet.
|
|
[edit] Classes Dictionary et IdentityDictionary
[edit] Méthodes pour accéder aux dictionnaires
Les dictionnaires sont des ensembles (Set) homogènes de paires clef/valeur. Ces paires sont appelées des associations (type Association); les clefs et les valeurs peuvent être d'un type quelconque. Une association est crée en envoyant le message binaire clef -> valeur (-> est défini dans Object). Une propriété des dictionnaires est qu'une clef ne peut s'y trouver qu'une fois. Les IdentityDictionnary partagent cette propriété, mais déterminent l'unicité d'une clef en utilisant l'opérateur == plutôt que =. Pour tout usage ordinaire, les deux types de dictionnaires sont indexés en utilisant ces clefs uniques pour obtenir les valeurs correspondantes.
| Message
| Description
| Notes
|
at: uneClef
| Renvoie la valeur associée à uneClef. Signale une erreur si une telle association n'existe pas.
|
|
at: uneClef ifAbsent: unBloc
| Renvoie la valeur associée à uneClef. Si une telle association n'existe pas, renvoie le résultat de l'évaluation de unBloc.
|
|
associationAt: uneClef
| Renvoie l'association (Association) dont la clef est uneClef. Signale une erreur si celle-ci ne peut être trouvée.
|
|
associationAt: uneClef ifAbsent: unBloc
| Renvoie l'association (Association) dont la clef est uneClef. Renvoie le résultat de l'évaluation de unBloc si celle-ci ne peut être trouvée.
|
|
keyAtValue: uneValeur
| Renvoie la clef de la première association dont la valeur est uneValeur. Signale une erreur si une telle association n'existe pas.
|
|
keyAtValue: uneValure ifAbsent: unBloc
| Renvoie la clef de la première association dont la valeur est uneValeur. Renvoie le résultat de l'évaluation de unBloc si une telle association n'existe pas.
|
|
keys
| Renvoie un ensemble (Set) des clefs du receveur.
|
|
values
| Renvoie un tableau (Array) des valeurs du receveur.
|
|
includes: uneValeur
| uneValeur est-elle une des valeurs du receveur ?
|
|
includesKey: uneClef
| uneClef est-elle une des clefs du receveur ?
|
|
do: unBloc
| Évalue unBloc pour chaque valeur du receveur (avec cette valeur comme argument).
|
|
keysDo: unBloc
| Évalue unBloc pour chaque clef du receveur (avec cette clef comme argument).
|
|
valuesDo: unBloc
| Équivalent à do: unBloc.
|
|
keysAndValuesDo: unBlocBinaire
| Évalue unBlocBinaire pour chaque association (avec la clef et la valeur comme paire d'arguments).
|
|
associationsDo: unBloc
| Évalue unBloc pour chaque association (avec celle-ci comme argument unique).
|
|
[edit] Collections séquentielles
[edit] Méthodes pour accéder aux collections séquentielles
| Message
| Description
| Notes
|
atAll: uneCollection
| Renvoie une collection contenant les éléments dont les indices sont spécifiés dans uneCollection (dont les éléments sont des entiers).
|
|
atAll: uneCollection put: unObjet
| Place unObjet à chaque indice spécifié par les entiers éléments de uneCollection.
|
|
atAllPut: unObjet
| Place unObjet à chaque élément existant du receveur.
|
|
first
| Renvoie le premier élément du receveur (Squeak reconnaît aussi second, third, fourth, fifth et sixth dont la signification est facile à deviner). Signale une erreur s'il n'y a pas suffisamment d'éléments dans le receveur.
|
|
middle
| Renvoie l'élément médian du receveur. Signale une erreur si le receveur est vide.
|
|
last
| Renvoie le dernier élément du receveur. Signale une erreur si le receveur est vide.
|
|
allButFirst
| Renvoie une collection identique au receveur, mais sans le premier élément. Signale une erreur si le receveur est vide.
|
|
allButLast
| Renvoie une collection identique au receveur, mais sans le dernier élément. Signale une erreur si le receveur est vide.
|
|
indexOf: unElement
| Renvoie l'indice de unElement dans le receveur. Si cet élément n'est pas présent, renvoie 0.
|
|
indexOf: unElement ifAbsent: blocException
| Renvoie l'indice de unElement dans le receveur. Si le receveur ne contient pas cet élément, renvoie le résultat de l'évaluation de blocException.
|
|
indexOfSubcollection: uneSousCollection startingAt: unIndice
| Recherche si la collection uneSousCollection est présente dans le receveur (dans le même ordre et consécutivement), en commençant la recherche à partir de l'indice unIndice. Le cas échéant, renvoie l'indice du premier élément trouvé. Sinon, renvoie 0.
|
|
indexOfSubcollection: uneSousCollection startingAt: unIndice ifAbsent: blocException
| Recherche si la collection uneSousCollection est présente dans le receveur (dans le même ordre et consécutivement), en commençant la recherche à partir de l'indice unIndice. Le cas échéant, renvoie l'indice du premier élément trouvé. Sinon, renvoie le résultat de l'évaluation de blocException.
|
|
replaceFrom: debut to: fin with: collectionRemplacement
| Remplace de manière destructive les éléments allant de debut à fin dans le receveur, par les éléments de collectionRemplacement. Renvoie le receveur lui-même. Utiliser de préférence #copyReplaceFrom:to:with: pour des insertions/suppressions qui pourraient altérer la taille du résultat.
|
|
replaceFrom: debut to: fin with: collectionRemplacement startingAt: debutRemplacement
| Remplace de manière destructive les éléments allant de debut à fin dans le receveur, par les éléments de collectionRemplacement en partant de l'indice debutRemplacement. Renvoie le receveur. Aucun test de dépassement n'est effectué.
|
|
[edit] Méthodes pour copier les collections séquentielles
| Message
| Description
| Notes
|
, autreCollection
| Renvoie une nouvelle collection, résultat de la concaténation du receveur et de autreCollection.
|
|
copyFrom: debut to: fin
| Renvoie une copie de la sous-collection du receveur allant de l'indice debut à l'indice fin (de manière inclusive dans les deux cas).
|
|
copyReplaceAll: vieilleSousCollection with: nouvelleSousCollection
| Renvoie une copie du receveur dans laquelle toutes les occurences de vieilleSousCollection ont été remplacées par nouvelleSousCollection.
|
|
copyReplaceFrom: debut to: fin with: collectionRemplacement
| Renvoie une copie du receveur vérifiant les conditions suivantes: si stop < start alors il s'agit d'une insertion; stop devrait alors être exactement égal à start - 1. start = 1 signifie insérer avant le premier élément, start = size + 1 signifie rajouter après le dernier élément. Sinon, c'est un remplacement; start et stop doivent se trouver à l'intérieur des bornes du receveur.
|
|
copyWith: nouvelElement
| Renvoie une copie du receveur à laquelle nouvelElement a été rajouté (à la fin).
|
|
copyWithout: ancienElement
| Renvoie une copie du receveur de laquelle toutes les occurences de ancienElement ont été supprimées.
|
|
copyWithoutAll: uneCollection
| Renvoie une copie du receveur de laquelle toutes les occurences de tous les éléments de uneCollection ont été supprimées.
|
|
forceTo: longueur paddingWith: unElement
| Renvoie une copie du receveur ramenée à la longueur spécifiée. Si celle-ci est plus grand que la longueur initiale, remplir à la fin avec des occurences de unElement.
|
|
reversed
| Renvoie une copie du receveur dans laquelle tous les éléments sont rangés dans l'ordre inverse.
|
|
shuffled
| Renvoie une copie du receveur dans laquelle tous les éléments ont été permutés (shuffled) de manière aléatoire.
|
|
sortBy: unBlocBinaire
| Renvoie une copie triée du receveur. Le critère de tri est fourni par unBlocBinaire. Lorsque ce bloc renvoie true (vrai), le premier argument sera rangé en premier.
| 1
|
Note :
- [1] - Par exemple, avec
[:a :b | a > b], le tri se fait par ordre décroissant.
[edit] Méthodes pour énumérer les collections séquentielles
| Message
| Description
| Notes
|
findFirst: unBloc
| Renvoie l'indice du premier élément du receveur pour lequel unBloc s'évalue à true (vrai).
|
|
findLast: unBloc
| Renvoie l'indice du dernier élément du receveur pour lequel unBloc s'évalue à true.
|
|
keysAndValuesDo: unBlocBinaire
| Évalue unBlocBinaire pour chaque couple (indice/élément) du receveur.
|
|
reverseDo: unBloc
| Évalue unBloc sur chaque élément du receveur, mais en allant du dernier au premier. Cela donne l'ordre inverse de l'énumération par #do: dans le cas des SequenceableCollections.
|
|
with: autreCollection do: blocBinaire
| Évalue blocBinaire pour tous les couples (élément du receveur/élément correspondant de autreCollection).
|
|
reverseWith: autreCollection do: unBlocBinaire
| Évalue blocBinaire pour tous les couples (élément du receveur/élément correspondant de autreCollection), mais dans l'ordre inverse.
|
|
[edit] Collections ordonnées
[edit] Méthodes pour accéder aux collections ordonnées
| Message
| Description
| Notes
|
add: nouvelObjet before: ancienObjet
| Rajoute nouvelObjet dans le receveur, à la position précédant celle de ancienObjet. Renvoie nouvelObjet.
|
|
add: nouvelObjet after: ancienObjet
| Rajoute nouvelObjet dans le receveur, à la position suivant celle de ancienObjet. Renvoie nouvelObjet.
|
|
add: nouvelObjet afterIndex: unIndice
| Rajoute nouvelObjet dans le receveur, à la position suivant l'indice unIndice. Renvoie nouvelObjet.
|
|
addFirst: nouvelObjet
| Rajoute nouvelObjet au début du receveur. Renvoie nouvelObjet.
|
|
addAllFirst: uneCollectionOrdonnee
| Rajoute tous les éléments de uneCollectionOrdonnee au début du receveur (dans le même ordre). Renvoie uneCollectionOrdonnee.
|
|
addLast: nouvelObjet
| Rajoute nouvelObjet à la fin du receveur. Renvoie nouvelObjet.
|
|
addAllLast: uneCollectionOrdonnee
| Rajoute tous les éléments de uneCollectionOrdonnee à la fin du receveur (dans le même ordre). Renvoie uneCollectionOrdonnee.
|
|
removeAt: unIndice
| Retire l'élément du receveur placé à l'emplacement d'indice unIndice. Renvoie l'élément retiré.
|
|
removeFirst
| Renvoie le premier élément du receveur après l'avoir retiré de celui-ci. Si le receveur est vide, signale une erreur.
|
|
removeLast
| Renvoie le dernier élément du receveur après l'avoir retiré de celui-ci. Si le receveur est vide, signale une erreur.
|
|
[edit] Chaînes de caractères
Les chaînes de caractères (String) forment une classe intimidante, construite au fil du temps d'une manière ad hoc. Nous ne décrivons ici qu'une petite partie des méthodes disponibles (il y en a environ 300 !).
[edit] Méthodes pour accéder chaînes de caractères
| Message
| Description
| Notes
|
findAnySubStr: delimiteurs startingAt: debut
| Renvoie l'indice du premier caractère dans le receveur, à partir de de but, qui commence une sous-chaîne correspondant à l'un des delimiteurs; delimiteurs est un tableau (Array) de chaînes de caractères (String) et/ou de caractères (Character). Si le receveur ne contient aucun des délimiteurs à partir de debut, renvoie la taille du receveur plus un: size + 1.
|
|
findBetweenSubStrs: delimiteurs
| Renvoie la collection des mots-clefs obtenue par analyse du receveur. Tout élément de delimiteurs (de type String ou Character) est considéré comme un séparateur de mot-clef.
|
|
findDelimiters: delimiteurs startingAt: debut
| Renvoie l'indice du premier caractère, en partant de debut, qui correspond à l'un des delimiteurs. Si aucun d'entre eux n'est trouvé, renvoie size + 1.
|
|
findString: sousChaine
| Renvoie le premier indice de sousChaine dans le receveur. Si celle-ci n'est pas trouvée, renvoie 0.
|
|
findString: sousChaine startingAt: debut
| Renvoie le premier indice de sousChaine dans le receveur, en partant de debut. Si celle-ci n'est pas trouvée, renvoie 0.
|
|
findTokens: delimiteurs
| Renvoie la collection de mots-clefs (tokens) résultant de l'analyse du receveur. Tout caractère dans l'argument delimiteurs est considéré comme un séparateur. Plusieurs séparateurs à la suite sont assimilés à un seul séparateur.
|
|
indexOf: unCaractere
| Renvoie l'indice de la première occurence de unCaractere dans le receveur. Renvoie 0 si aucune n'est trouvée.
|
|
indexOf: unCaractere startingAt: debut
| Renvoie l'indice de la première occurence de unCaracteredans le receveur, en partant de debut. Renvoie 0 si aucune n'est trouvée.
|
|
indexOf: unCaractere startingAt: debut ifAbsent: unBloc
| Renvoie l'indice de la première occurence de unCaracteredans le receveur, en partant de debut. Renvoie le résultat de l'évaluation de unBloc si aucune n'est trouvée.
|
|
indexOfAnyOf: unEnsembleDeCaracteres
| Renvoie l'indice de la première occurence d'un des caractères de unEnsembleDeCaracteres dans le receveur. Renvoie 0 si aucune n'est trouvée.
| 1
|
Note :
- [1] - Tout comme pour
#indexOf:, il y a des variations sur ce message: #indexOfAnyOf:ifAbsent:, #indexOfAnyOf:startingAt: et #indexOfAnyOf:startingAt:ifAbsent:.
[edit] Méthodes pour comparer des chaînes de caractères
| Message
| Description
| Notes
|
= uneChaine
| Le receveur est-il égal à uneChaine ? La comparaison tient compte de la casse (majuscules et minuscules).
|
|
< uneChaine, <= uneChaine, > uneChaine, >= uneChaine
| Le receveur et uneChaine se comparent-ils comme indiqué suivant l'ordre lexicographique (ordre du dictionnaire). Attention, l'ordre est basé sur le jeux de caractères de Squeak, il est donc sensible à la casse.
|
|
sameAs: uneChaine
| Le receveur est-il égal à uneChaine, indépendemment de la casse ?
|
|
compare: uneChaine
| Renvoie un code spécifiant comment le receveur se compare à uneChaine. La réponse est 1 lorsque self < uneChaine, 2 si self = uneChaine et 3 si self > uneChaine. L'ordre tient compte de la casse, puisqu'il est basé sur le jeu de caractères de Squeak.
|
|
match: texte
| Le texte correspond-il au motif dans le receveur ? La correspondance ne tient pas compte de la casse. Lorsque le receveur contient un #, le texte peut contenir n'importe quel caractère. Si c'est un *, le texte peut contenir n'importe quelle séquence de caractères.
|
|
beginsWith: prefixe
| Le receveur commence-t-il par prefixe ?
|
|
ensWith: suffixe
| Le receveur se termine-t-il par suffixe ?
|
|
alike: uneChaine
| Renvoie un entier positif ou nul indiquant le degré de similarité entre le receveur et uneChaine. 0 correspond à "pas du tout similaire"; le meilleur score est uneChaine size * 2.
|
|
Méthodes pour convertir des chaînes de caractères
| Message
| Description
| Notes
|
asLowercase
| Renvoie une nouvelle chaîne correspondant au receveur, mais où tous les caractères en majuscules ont été convertis en minuscules.
|
|
asUppercase
| Renvoie une nouvelle chaîne correspondant au receveur, mais où tous les caractères en minuscules ont été convertis en majuscules.
|
|
capitalized
| Renvoie une copie du receveur où le premier caractère est mis en majuscule (si c'est une lettre).
|
|
asDisplayText
| Renvoie une copie du receveur avec les polices par défaut et les informations de style.
|
|
asInteger
| Tente de convertir le receveur en entier (Integer). Renvoie l'entier le cas échéant, et nil si le receveur ne commence pas par un chiffre.
|
|
asNumber
| Tente de convertir le receveur en un nombre (Number). Signale une erreur si le receveur ne commence pas par un chiffre.
|
|
asDate
| Tente de convertir le receveur en une date, et renvoie le cas échéant une instance de la classe Date. De nombreux formats sont reconnus.
|
|
[edit] Classes et méthodes des flots de données
[edit] La hiérarchie des flots de données
| Classe
| Description
|
Stream
| Classe abstraite pour toutes les flots (stream) de données. Ce sont des accesseurs pour des séquences d'objets.
|
PositionableStream
| Accesseur pour une collection indexable par un entier.
|
ReadStream
| Flot en lecture seule
|
|
|
WriteStream
| Flot en écriture seule
|
ReadWriteStream
| Flot sur lequel on peut lire/écrire.
|
FileStream
| Accesseurs pour des collections dont les éléments se lisent par pages (parce qu'ils sont par exemple bien plus volumineux que la mémoire disponible).
|
StandardFileStream
| Accesseurs pour des fichiers auquels on accède à partir d'un système de fichiers.
|
CrLfFileStream
| Gère automatiquement les fins de lignes propres à la plateforme hôte.
|
DummyStream
| Correspond au /dev/null des systèmes unix. Son but est d'absorber tous les messages qu'on lui envoie sans rien faire.
|
[edit] Classe Stream
Stream (flots de données) est une classe abstraite faisant office d'accesseur pour une séquence d'objets, appelés le contenu. On dit qu'on "avance" le long du flot lorsque celui-ci est configuré pour accéder à un des élément suivants du contenu.
[edit] Méthodes pour accéder aux flots
| Message
| Description
| Notes
|
contents
| Renvoie tout le contenu du receveur.
|
|
next
| Renvoie le prochain objet accessible par le receveur.
|
|
next: unEntier
| Renvoie les unEntier prochains objets accessibles par le receveur.
|
|
next: n put: unObjet
| Fait en sorte que unObjet devienne les n prochains objets accessibles par le receveur. Renvoie unObjet.
|
|
nextMatchAll: uneCollection
| Les N prochains objets sont-ils ceux de uneCollection (dans le même ordre) ? Si oui, avance le flot de N positions. Sinon, ne change rien.
|
|
nextMatchFor: unObjet
| Le prochain objet accessible par le receveur est-il unObjet ? Si oui, avance le flot d'une position. Sinon, ne change rien.
|
|
nextPut: unObjet
| unObjet devient le premier objet accessible par le receveur. Renvoie unObjet.
|
|
nextPutAll: uneCollection
| Rajoute les éléments de uneCollection à la séquence d'objets accessibles par le receveur. Renvoie uneCollection.
|
|
upToEnd
| Renvoie une collection contenant les objets restants dans le flot.
|
|
flush
| S'assure que tout objet stocké dans une mémoire temporaire dans le receveur est envoyé à sa destination finale.
|
|
[edit] Méthodes pour tester les flots
| Message
| Description
| Notes
|
atEnd
| Le receveur peut-il encore accéder à des objets ?
|
|
[edit] Méthodes pour énumérer les flots
| Message
| Description
| Notes
|
do: unBloc
| Évalue unBloc pour tous les objets restants accessibles par le receveur.
|
|
[edit] Classe PositionableStream
Un flot positionnable est une classe abstraite pour accéder à une séquence d'objets énumérables par des indices, de façon à ce que le point d'accès puisse être repositionné. Les classes concrètes correspondantes, ReadStream, WriteStream et ReadWriteStream sont généralement utilisées pour instancier un PositionableStream sur une collection d'objets, selon le mode d'accès désiré. Les classes StandardFileStream et CrLfFileStream sont quand à elles utilisées pour instancier des flots positionnables sur des fichiers.
[edit] Méthodes pour accéder à des flots positionnables
| Message
| Description
| Notes
|
contentsOfEntireFile
| Renvoie une collection contenant le restant des objets accessibles par le receveur.
|
|
last
| Renvoie le dernier élément du receveur.
|
|
nextDelimited: terminaison
| Renvoie le contenu du receveur, à partir de la position courante jusqu'au prochain caractère de terminaison. Cependant, les doubles terminaisons ne sont pas considérées comme telles et seront inclues en un seul exemplaire.
| 1
|
nextInto: tampon
| buffer étant un objet indexable de taille n, remplit buffer avec les n prochains objets du receveur.
|
|
nextLine
| Renvoie la prochaine ligne (qui peut être vide), ou nil si plus rien n'est disponible.
|
|
originalContents
| Renvoie le véritable contenu du receveur (contents renvoie juste une copie).
|
|
peek
| Renvoie le prochain objet qui serait accessible par le receveur, mais sans avancer celui-ci. Renvoie nil si le receveur est à la fin du flot.
|
|
peekFor: unObjet
| Renvoie false (faux) et n'avance pas au prochain élément si celui-ci est différent de unObjet, ou si le receveur est à la fin du flot. Renvoie true (vrai) et avance le flot d'une position si le prochain élément est égal à unObjet.
|
|
upTo: unObjet
| Renvoie une sous-collection partant de la position courante jusqu'à l'occurence de unObjet (exclue) dans le receveur. Si aucune occurence n'est trouvée, renvoie tout le restant du receveur.
|
|
upToAll: uneCollection
| Renvoie une sous-collection partant de la position courante jusqu'à l'occurence de uneCollection (exclue) dans le receveur. Si uneCollection n'est pas dans le flot, renvoie le restant du receveur.
|
|
Note :
- [1] - Par exemple:
"Ceci "" est un guillemet", où terminaison = $". Les deux guillemets "" seront lus comme un seul ", mais ne seront pas considérés comme une terminaison.
[edit] Messages pour tester des flots positionnables
| Message
| Description
| Notes
|
isEmpty
| Le receveur est-il vide ?
|
|
[edit] Méthodes pour positionner les flots
| Message
| Description
| Notes
|
match: uneSousCollection
| Positione le receveur après la prochaine occurence de uneSousCollection. Renvoie true (vrai) si une telle occurence est trouvée, false (faux) dans le cas contraire (le flot est alors épuisé). Tient compte de la casse, et n'utilise aucun caractère générique (wildcard).
|
|
padTo: nOctets put: unCaractere
| Remplit à l'aide de unCaractere jusqu'à la prochaine position multiple de nOctets.
|
|
padToNextLongPut: unCaractere
| Remplit à l'aide de unCaractere jusqu'à la prochaine position multiple de 4 (longueur d'un mot long).
|
|
position
| Renvoie la position courante du flot.
|
|
position: unEntier
| Positione la position courante à la unEntier-ième position, tant que celle-ci est à l'intérieur des bornes du contenu du receveur. Signale une erreur dans le cas contraire.
|
|
reset
| Replace la position courante du receveur au début de la séquence d'objets.
|
|
resetContents
| Place la position ainsi que la limite à zéro.
|
|
setToEnd
| Place la position courante à la fin de la séquence d'objets.
|
|
skip: unEntier
| Rajoute unEntier à la position courante. Une sous-classe peut être d'une plus grande aide en choisissant le minimum de la taille du receveur et de position + unEntier, ou le maximum de 1 et de position + unEntier pour le repositionnement.
|
|
skipTo: unObjet
| Positionne le receveur juste après la prochaine occurence de unObjet. Renvoie true dans ce cas. Si une telle occurence n'est pas trouvée, renvoie false et épuise tout le flot.
|
|
[edit] Classe WriteStream
[edit] Méthodes pour écrire des caractères
| Message
| Description
| Notes
|
cr
| Rajoute un caractère de retour chariot (carriage return) au receveur
|
|
crtab
| Rajoute un caractère de retour chariot, suivit d'une unique tabulation, au receveur.
|
|
crtab: unEntier
| Rajoute un caractère de retour chariot, suivit de unEntier tabulations, au receveur.
|
|
space
| Rajoute un caractère d'espacement au receveur.
|
|
tab
| Rajoute une tabulation au receveur.
|
|
[edit] Exceptions compatibles ANSI
[edit] Évaluer des bloc avec des exceptions
[edit] Méthodes pour traiter les exceptions déclenchées dans un contexte de bloc (BlocContext)
| Message
| Description
| Notes
|
ensure: unBlocDeFin
| Évalue unBlocDeFin après avoir évalué le receveur, quelle que soit la façon dont l'évaluation du receveur se termine.
|
|
ifCurtailed: unBlocDeFin
| (litérallement: si écourté) Évalue le receveur. En cas de fin anormale, évalue unBlocDeFin
|
|
on: exception do: blocTraitementException
| Évalue le receveur sous la garde de blocTraitementException.
|
|
[edit] Exemples
["code cible, qui peut échouer"]
ensure:
["code qui sera systématiquement évalué
après le code cible,
quoiqu'il puisse advenir"]
["code cible, qui peut échouer"]
ifCurtailed:
["code qui sera exécuté si
et seulement si le code cible
échoue de manière anormale"]
["code cible, qui peut échouer"]
on: Exception
do: [ :exception |
"code qui sera exécuté si et seulement si
l'exception Exception est déclenchée"]
[edit] Classe Exception
Exception est une classe abstraite; aucune instance ne devrait être créée ou attrapée (par unBloc on: Exception do: [...]). Il y a deux sous-classes usuelles d'Exception, Error et Notification, desquelles toutes les sous-classes descendent en général. L'exécution après une erreur ne peut pas être reprise; une notification indique qu'un événement intéressant s'est produit; s'il n'est pas traité, il sera ignoré sans aucun effet.
Les exceptions ont un double but: pour définir les exceptions elles-mêmes, et pour filtrer lors du traitement des exceptions.
[edit] Méthodes pour décrire des exceptions
| Message
| Description
| Notes
|
defaultAction
| L'action par défaut à prendre lorsque l'exception est signalée.
|
|
description
| Renvoie une description textuelle de l'exception.
|
|
isResumable
| Détermine si l'exécution peut reprendre après le déclenchement de l'exception.
|
|
messageText
| Renvoie un message textuel pour l'exception.
|
|
tag
| Renvoie un tag pour l'exception.
|
|
[edit] Méthodes pour signaler des exceptions
| Message
| Description
| Notes
|
signal
| Déclenche l'exception correspondant au receveur.
|
|
signal: unTexte
| Déclenche une exception décrite par unTexte.
|
|
[edit] Méthodes pour traiter une exception signalée
| Message
| Description
| Notes
|
isNested
| Détermine si le gestionnaire d'exception courant est inclus dans la portée d'un autre gestionnaire pour la même exception.
|
|
outer
| Évalue l'action du gestionnaire suivant pour le receveur, puis retourne.
|
|
pass
| Passe le contrôle au gestionnaire suivant pour le receveur.
|
|
resignalAs: exceptionAlternative
| Signale une exceptionAlternative à la place du receveur.
|
|
resume
| Reprend l'exécution après le mesage qui a signalé le receveur.
|
|
resume: valeurDeReprise
| Reprend l'exécution après le message qui a signalé le receveur. Celui-ci renvoie la valeur valeurDeReprise.
|
|
retry
| Interrompt l'exécution du gestionnaire d'exception, et ré-évalue le bloc qu'il protège.
|
|
retryUsing: blocAlternatif
| Interrompt l'exécution du gestionnaire d'exception, et évalue blocAlternatif à la place du bloc qu'il protège.
|
|
return
| Renvoie nil comme valeur du bloc protégé par le gestionnaire d'exception actif.
|
|
return: valeurDeRetour
| Renvoie valeurDeRetour comme valeur du bloc protégé par le gestionnaire d'exception actif.
|
|
[edit] Classe ExceptionSet
Un ensemble d'exceptions (ExceptionSet) est utilisé pour spécifier un ensemble d'exception à filtrer pour un gestionnaire d'exceptions.
[