Bonjour,
je rencontre un petit problème de compréhension (de débutant c'est sur). Voila un morceau de code : | myImage pixelsValues | myImage := ImageMorph new. pixelsValues := myImage imageForm tallyPixelValues. Transcript show: pixelsValues size; cr. (pixelsValues select: [ :each | each > 0]) do: [ :each | Transcript show: each; show: ' '.]. (pixelsValues collect: [ :each | each > 0]) do: [ :each | Transcript show: each; show: ' '.]. pixelsValues renvoie un bitmap (qui est une Collection) pourquoi collect: sur le bitmap me renvoie une erreur ? Error : improper store into indexable object select par contre fonctionne 'normalement' Merci d'éclairer ma lanterne de débutant (mais je m'accroche :) ) Cordialement, -- Frédéric Ferrère _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour,
le select et le collect fonctionne differemment. pixelsValues select: [ :each | each > 0] retourne les éléments de pixelsValues pour lesquels each>0 s'évalue à true. pixelsValues collect: [ :each | each > 0] renvoie la collection des resultats des évalutions each>0 , donc une collection de booléens. voila pour la différence entre collect et select. si je ne me trompe pas (j'ai passe la journee dans eclipse, je suis apte a dire des betises tres grosses!!) Mais je ne pourrais pas expliquer le bug , jen 'ai pas squeak sous la main pour tester. HTH, Yann FERRERE Frédéric a écrit : > Bonjour, > > je rencontre un petit problème de compréhension (de débutant c'est sur). > > > Voila un morceau de code : > > | myImage pixelsValues | > myImage := ImageMorph new. > pixelsValues := myImage imageForm tallyPixelValues. > Transcript show: pixelsValues size; cr. > (pixelsValues select: [ :each | each > 0]) do: [ :each | > Transcript show: each; show: ' '.]. > (pixelsValues collect: [ :each | each > 0]) do: [ :each | > Transcript show: each; show: ' '.]. > > > pixelsValues renvoie un bitmap (qui est une Collection) > > pourquoi collect: sur le bitmap me renvoie une erreur ? > > Error : improper store into indexable object > > select par contre fonctionne 'normalement' > > Merci d'éclairer ma lanterne de débutant (mais je m'accroche :) ) > > Cordialement, -- Yann Monclair -- Email: [hidden email] 2, rue Camille Claudel -- Phone: +33 298 979323 29900 Concarneau -- Cell : +33 663 948092 FRANCE -- WWW : http://yann.monclair.info _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour,
A mon avis le "bug" vient du fait que la méthode collect: créer une nouvelle collection du même type que le receveur courant (ici un Bitmap) afin de stocker les valeurs obtenues en évaluant le block. Donc, pixelsValues collect: [ :each | each > 0] essaie de construire un bitmap en lui insérant des booléens ce qui ne fonctionne pas. Par contre: pixelsValues collect: [ :each | each * 2] fonctionne. Luc. Yann Monclair a écrit : > Bonjour, > > le select et le collect fonctionne differemment. > > pixelsValues select: [ :each | each > 0] > > retourne les éléments de pixelsValues pour lesquels each>0 s'évalue à true. > > pixelsValues collect: [ :each | each > 0] > > renvoie la collection des resultats des évalutions each>0 , donc une > collection de booléens. > > voila pour la différence entre collect et select. si je ne me trompe pas > (j'ai passe la journee dans eclipse, je suis apte a dire des betises > tres grosses!!) > > Mais je ne pourrais pas expliquer le bug , jen 'ai pas squeak sous la > main pour tester. > > HTH, > > Yann > > > FERRERE Frédéric a écrit : >> Bonjour, >> >> je rencontre un petit problème de compréhension (de débutant c'est sur). >> >> >> Voila un morceau de code : >> >> | myImage pixelsValues | >> myImage := ImageMorph new. >> pixelsValues := myImage imageForm tallyPixelValues. >> Transcript show: pixelsValues size; cr. >> (pixelsValues select: [ :each | each > 0]) do: [ :each | >> Transcript show: each; show: ' '.]. >> (pixelsValues collect: [ :each | each > 0]) do: [ :each | >> Transcript show: each; show: ' '.]. >> >> >> pixelsValues renvoie un bitmap (qui est une Collection) >> >> pourquoi collect: sur le bitmap me renvoie une erreur ? >> >> Error : improper store into indexable object >> >> select par contre fonctionne 'normalement' >> >> Merci d'éclairer ma lanterne de débutant (mais je m'accroche :) ) >> >> Cordialement, > > Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Free forum by Nabble | Edit this page |