[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