[Squeak-fr] encore un pt pb de Array2D

ducasse ducasse at iam.unibe.ch
Dim 22 Fév 11:16:37 CET 2004


On 22 févr. 04, at 10:41, Panchinhosson at aol.com wrote:

> Tu peux mettre au lieu de
>
> (self grid
>         select: [:each | each notNil       <=ca ca ne marche pas, il 
> me dit 'Use >>self width: x height: y<< instead'
>                  and: [each isPirate]])
>
>  self grid
>         select: [ :each |
>                      each notNil & each class = Pirate].

C'est pas tres joli de devoir tester explicitement une classe.
En plus ici tu testes meme si ton premier test est nil. Donc c'est pas 
joli et pas efficace. Desole :)

Le mieux est d'avoir des objets appartenant a une meme classe dans une 
collection,
ou bien que les instances partagent toutes la meme interfaces.

Ce qui veut dire que dans ce cas la, un object englobant les pirates et 
les nons pirates
manque peut etre, ou alors isPirate doit etre defini pour rendre faux 
sur les autres classes.

Sinon pour eviter le each notNil on peut aussi creer ce que l'on appele 
un object null
NullObject design pattern. C'est un objet qui absorbe tous les messages 
ou rend des resultats
par default

ainsi tu aurais des nul Objets dans ta struture et un null objet rend 
false pour isPirate

ton code est alors self grid select: [:each | each isPirate]

mais je pense que ton probleme vient de Array2D.

N'hesitez pas a poser des questions de style car c'est la que vous 
allez apprendre des trucs
**fondamentaux** de la programmation a objets.


Stef

>
>  Je ne pense pas que
>         each isPirate
>  fonctionne.
>  Le mieux pour vérifier une classe c'est
>         objet class = classeObjet
>
>  Au fait tu es à l'iut d'ifs 
> toi?_______________________________________________
> Squeak-fr mailing list
> Squeak-fr at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: text/enriched
Taille: 3286 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20040222/e89ac9ba/attachment.bin


Plus d'informations sur la liste de diffusion Squeak-fr