Smalltalkã£ã¦ããªãæããããã¨ããã®ã¯ç¥ã£ã¦ãã¾ãã
enumerateObjectsUsingBlockの練習 | プログラマメモ2
ã¨ããã¤ã¤ãSmalltalkã®ãã¨ããã£ã¦ã¾ãã....
â»^ãããã§ã¦ããã¨ããã¨ã...
ä½ãã®åèã«ãªãã°â¦ã¨ãåããããªå¦çã Squeak Smalltalk ã«æ¸ãç´ãã¦ã¿ã¾ããããã¨å¿µã®ãããSmalltalk ã§ã¯ãããã¯ã¨ã¯é¢ä¿ãªã return ã®æå³ã§ ^ ã使ãã¾ããObjective-C ã®ãããã¯ã«åºã¦ãã ^ ã¨ã¯é¢ä¿ããã¾ããã
| dataClass | dataClass := Object subclass: #MyData instanceVariableNames: 'myname' classVariableNames: '' poolDictionaries: '' category: 'Category-Name'. Browser new setClass: dataClass selector: nil; createInstVarAccessors.
| array enumerator | "ãã¼ã¿ãã¤ãã" array := OrderedCollection new. 0 to: 4 do: [:i | | mydata | mydata := MyData new. mydata myname: i asString. array add: mydata]. World findATranscript: nil. "ãã®å ´ã§å®ç¾©ãã¦ãã®å ´ã§ä½¿ããã¿ã¼ã³" "ä¸èº«ã®ç¢ºèª" array do: [:obj | Transcript cr; show: '==> ', obj myname]. "BLOCKã§ä½¿ã£ã¦ã½ã¼ãï¼ï¼" array sort: [:obj1 :obj2 | Transcript cr; show: ('[{1}]ã¨[{2}]ãæ¯è¼' format: {obj1 myname. obj2 myname}). obj2 myname < obj1 myname]. "宣è¨ãããã®ãå¾ãã使ããã¿ã¼ã³" enumerator := [:obj | Transcript cr; show: 'enumerator ==> ', obj myname]. array do: enumerator
==> 0 ==> 1 ==> 2 ==> 3 ==> 4 [0]ã¨[1]ãæ¯è¼ [1]ã¨[2]ãæ¯è¼ [3]ã¨[4]ãæ¯è¼ [2]ã¨[4]ãæ¯è¼ [2]ã¨[3]ãæ¯è¼ enumerator ==> 4 enumerator ==> 3 enumerator ==> 2 enumerator ==> 1 enumerator ==> 0