Outils pour utilisateurs

Outils du site


cours:informatique:dev:programmation_objet_pharo:335_flux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
cours:informatique:dev:programmation_objet_pharo:335_flux [2022/08/23 11:56] yoanncours:informatique:dev:programmation_objet_pharo:335_flux [2022/08/23 12:50] (Version actuelle) yoann
Ligne 1: Ligne 1:
-{{tag>cours dev poo pharo todo}}+{{tag>cours dev poo pharo}}
    
 ====== Présentation des objets de type Stream ====== ====== Présentation des objets de type Stream ======
Ligne 151: Ligne 151:
 On peut créer des collections en utilisant des streams. Ça c'est très utile quand on veut créer des collections et qu'il nous faut du code pour choisir ce qu'on va mettre dans la collection petit à petit. On peut créer des collections en utilisant des streams. Ça c'est très utile quand on veut créer des collections et qu'il nous faut du code pour choisir ce qu'on va mettre dans la collection petit à petit.
  
-<code smalltalk>+<code smalltalk [enable_line_numbers="true">
 myStream := OrderedCollection new writeStream. myStream := OrderedCollection new writeStream.
  
Ligne 162: Ligne 162:
 </code> </code>
  
 +Là, je veux créer une OrderedCollection en envoyant des messages à un stream. À partir de ma classe OrderedCollection, je fais une nouvelle instance, j'en fais un flux en écriture et avec le message ''nextPut:'', j'ajoute l'élément 1 dans mon stream.
 +
 +Maintenant quand je vais envoyer le message ''contents'' (ligne 4), je vais obtenir une instance de la classe OrderedCollection qui contient uniquement la valeur 1.
 +
 +Ces 3 expressions peuvent s'écrire plus simplement comme on le voit en-dessous avec l'équivalent présenté lignes 7 et 8. En envoyant le message ''streamContents:'' à la classe de collection qui nous intéresse, donc ici c'est OrderedCollection, j'envoie ce message "streamContents" à ''OrderedCollection'', je lui passe en paramètre un block qui prend un stream en paramètre. Au sein de ce block, je vais utiliser le stream pour remplir ma collection petit à petit et quand le block se termine j'obtiens ma collection.
 +
 +Dans le block, je fais ''stream nextPut: 1'', j'ajoute 1 dans mon stream qui va l'ajouter dans la collection. Quand ''streamContents'' se termine, je vais obtenir une OrderedCollection qui contient 1.
 +
 +StreamContents c'est utile pour créer des collections à partir de rien.
 +
 +===== Résumé =====
 +
 +Dans cette séquence, nous avons découvert l'API de stream. Il y a énormément de méthodes dans cette API que je vous invite à aller découvrir en naviguant dans les classes grâce au navigateur de codes Nautilus.
 +
 +Un stream peut lire et écrire dans des collections d'éléments en mémoire, dans des fichiers, sur le réseau et d'autres éléments encore.
  
-Là, je veux créer une OrderedCollection en envoyant des messages à un stream. À partir de ma classe OrderedCollection, je fais une nouvelle instance, j'en fais un flux en écriture et avec le message next put, j'ajoute l'élément 1 dans mon stream. Maintenant quand je vais faire streamContents, je vais obtenir une instance de la classe OrderedCollection qui contient uniquement la valeur 1. Ces 3 expressions peuvent s'écrire plus simplement comme on le voit en-dessous. En envoyant le message "streamContents" à la classe de collection qui nous intéresse, donc ici c'est OrderedCollection, j'envoie ce message "streamContents" à OrderedCollection, je lui passe en paramètre un block qui prend un stream en paramètre. Au sein de ce block, je vais utiliser le stream pour remplir ma collection petit à petit et quand le block se termine j'obtiens ma collection. Dans le block, je fais "stream nextPut 1", j'ajoute 1 dans mon stream qui va l'ajouter dans la collection. Quand "streamContents" quitte, donc quand l'ensemble de cette expression se termine, je vais obtenir une OrderedCollection qui contient 1. StreamContents c'est utile pour créer des collections à partir de rien. Dans cette séquence, nous avons découvert l'API de stream. Il y a énormément de méthodes dans cette API que je vous invite à aller découvrir en naviguant dans les classes grâce au navigateur de codes Nautilus. Un stream peut lire et écrire dans des collections d'éléments en mémoire, dans des fichiers, sur le réseau et d'autres éléments encore. Un stream a toujours une position courante, c'est important. La position courante sépare les éléments du passé des éléments du futur, et en fait évoluer cette position courante à chaque fois qu'on va vouloir lire ou écrire dans le flux. Enfin, les streams peuvent servir à créer des nouvelles collections. +Un stream a toujours une position courante, c'est important. La position courante sépare les éléments du passé des éléments du futur, et en fait évoluer cette position courante à chaque fois qu'on va vouloir lire ou écrire dans le flux. Enfin, les streams peuvent servir à créer des nouvelles collections.
cours/informatique/dev/programmation_objet_pharo/335_flux.1661255791.txt.gz · Dernière modification : 2022/08/23 11:56 de yoann