March 27, 2005

¼«Í³¼«ºß Squeak ¥×¥í¥°¥é¥ß¥ó¥°¡§Â裶¾Ï ´ðËÜ¥¯¥é¥¹¥é¥¤¥Ö¥é¥êõ¸¡¨¡¤½¤Î£²(2)

Squeak Logo
¡ã¥¹¥È¥ê¡¼¥à¥¯¥é¥¹·²¡ä¡§¥¹¥È¥ê¡¼¥à¤Ï°ì³¤­¤Î¥Ç¡¼¥¿¤ò½èÍý¤¹¤ë¤â¤Î¤Ç¡¢É¬¤º¤Ê¤ó¤é¤«¤Î¥³¥ì¥¯¥·¥ç¥ó¡Ê¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¡Ë¤ò¸µ¤ËÀ¸À®¤¹¤ë¤¬¡¢Ëؤɤξì¹ç¤Ï String ¤ò°·¤¦»þ¤ËÍøÍѤµ¤ì¤ë¡£

´ðËÜ¡ÊÆâÉô¡Ë¥¹¥È¥ê¡¼¥à¡§¥á¥â¥ê¾å¤Î¤ß¤Ë¸ºß¤¹¤ë¥¹¥È¥ê¡¼¥à
ReadStream¡§Æɤ߹þ¤ßÀìÍѤΥ¹¥È¥ê¡¼¥à¡£¡Öon:¡×¥¯¥é¥¹¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¡ÊArray, String ¥¯¥é¥¹¤Ê¤É¡Ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÅϤ·¤ÆÀ¸À®¤Ç¤­¤ë¡£
¡¡Î㡧rs := ReadStream on: #(a b c d). rs inspect. "do it"
¤Þ¤¿¤Ï¡¢¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¡ÊArray, String ¥¯¥é¥¹¤Ê¤É¡Ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ë¡¢¡ÖreadStream¡×¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë»ö¤Ç¤â¡¢À¸À®¤Ç¤­¤ë¡£
¡¡Î㡧rs := #(a b c d) readStream. "inspect it"¡¡rs := 'abcd' readStream. "inspect it"
next, next: ¥á¥Ã¥»¡¼¥¸¡§¥¹¥È¥ê¡¼¥à¤Ë¡Önext¡×¥á¥½¥Ã¥É¤òÁ÷¤ë»ö¤Ç¡¢Í×ÁǤò½ç¤Ë¼è¤ê½Ð¤»¤ë¡£¡Önext:¡×¥á¥Ã¥»¡¼¥¸¤Ç°ú¿ôʬ¤À¤±¼è¤ê½Ð¤¹»ö¤â¤Ç¤­¤ë¡£
¢¨¡§¥³¥ì¥¯¥·¥ç¥ó¤ÎºÇ¸å¤ÎÍ×ÁǤòĶ¤¨¤ë¤È¡Önil¡ÊÉÔÄê¡Ë¡×¤¬Ê֤äÆÍè¤ë¡£
¡¡Î㡧rs := '12345' readStream. rs next. "print it" rs next: 4. "print it" rs next. "print it"
ÄêÈ֤νñ¤­Êý¡§¡ÖwhileFalse:¡×¥á¥½¥Ã¥É¤ò»È¤¤¡¢¥¹¥È¥ê¡¼¥à¤Ë¡ÖatEnd¡×¥á¥½¥Ã¥É¤òÁ÷¤Ã¤ÆȽÄꤹ¤ë¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. [rs atEnd] whileFalse: [Transcript space; show: rs next]. "do it"
upToEnd ¥á¥Ã¥»¡¼¥¸¡§next Åù¤ÇÆɤ߹þ¤ß¸å¡¢ºÇ¸å¤Þ¤ÇÁ´¤Æ¼è¤ê½Ð¤¹»þ¤Ë»ÈÍѤ¹¤ë¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs next:6. rs upToEnd. "print it"
contents ¥á¥Ã¥»¡¼¥¸¡§next Åù¤ÇÆɤ߹þ¤ó¤À°ÌÃ֤˴ط¸¤Ê¤¯¡¢ºÇ½é¤«¤éºÇ¸å¤Þ¤ÇÁ´¤Æ¼è¤ê½Ð¤¹»þ¤Ë»ÈÍѤ¹¤ë¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs next:6. rs contents. "print it"
position, position: , reset¥á¥Ã¥»¡¼¥¸¡§¸½ºß¤ÎÆɤ߼è¤ê°ÌÃÖ¤òposition¤Ç³Îǧ¡¢positon: ¤ÇÆɤ߼è¤ê°ÌÃÖ¤òÀèƬ¤«¤é¤ÎÀäÂÐÃͤÇÀßÄꤹ¤ë»ö¤¬¤Ç¤­¤ë¡£position: ¤Î°ú¿ô¤¬¥¹¥È¥ê¡¼¥à¤ÎÍ×ÁǤòĶ¤¨¤ë¾ì¹ç¤Ï¥¨¥é¡¼¡£ reset¤Çposition¤ÎÃͤò¥¼¥í¤ËÌ᤻¤ë¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs next:6. rs position. "print it" rs position:12. rs next. "print it" rs reset. rs position. "print it"
skip: ¥á¥Ã¥»¡¼¥¸¡§¸½ºß¤ÎÆɤ߼è¤ê°ÌÃÖ¤«¤éÁêÂÐŪ¤ËÆɤ߼è¤ê°ÌÃÖ¤ò»ØÄê¤Ç¤­¤ë¡£Éé¤ÎÃͤÇÌá¤ë»ö¤â¤Ç¤­¤ë¡£¥¹¥È¥ê¡¼¥à¤ÎÍ×ÁÇ¿ô¤òĶ¤¨¤¿¤ê¡¢¥¼¥í°Ê²¼¤Ë¤Ê¤ë¤È¥¨¥é¡¼¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs next:6. rs skip:6. rs next. "print it" rs skip:-6. rs next. "print it"
upTo: ¥á¥Ã¥»¡¼¥¸¡§°ú¿ô¤ÎÍ×ÁǤޤǤò¼è¤ê½Ð¤¹¡£position¤ÎÃͤϡ¢°ìÃפ·¤¿Í×ÁǤˤʤ롣°ú¿ô¤È°ìÃפ¹¤ëÍ×ÁǤ¬Ìµ¤±¤ì¤ÐºÇ¸å¤Þ¤Ç¼è¤ê½Ð¤¹¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs upTo:(Character space). "print it" rs upTo:(Character space). "print it"
skipTo: ¥á¥Ã¥»¡¼¥¸¡§°ú¿ô¤ÎÍ×ÁǤޤÇposition¤ò°ÜÆ°¤¹¤ë¤À¤±¡£upTo¤ÎÍͤˡ¢Í×ÁǤòÊÖ¤µ¤Ê¤¤¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs skipTo:(Character space). rs position. "print it"
peek ¥á¥Ã¥»¡¼¥¸¡§next¥á¥Ã¥»¡¼¥¸¤ÈƱ¤¸¤¯¡¢¼¡¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹¤¬¡¢position¤òÊѲ½¤µ¤»¤Ê¤¤¡£
¡¡Î㡧rs := 'Hello Squeak!' readStream. rs next. rs position. "print it" rs peek. "print it" rs position. "print it"

WriteStream¡§½ñ¤­¹þ¤ßÀìÍѤΥ¹¥È¥ê¡¼¥à¡£
on: ¥á¥Ã¥»¡¼¥¸¡§on: ¥¯¥é¥¹¥á¥½¥Ã¥É¤Î°ú¿ô¤Ë¡¢½ñ¤­¹þ¤à¤ª¤ª¤è¤½¤ÎÍ×ÁÇ¿ô¤ò»ý¤Ã¤¿¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò»ØÄꤷ¤Æ¡¢¥¹¥È¥ê¡¼¥à¤òºîÀ®¤¹¤ë¡£
ºÇ½é¤Ë»ØÄꤷ¤¿Í×ÁÇ¿ô¤òĶ¤¨¤ëÍ×ÁǤò½ñ¤­¹þ¤ó¤À¾ì¹ç¤Ç¤â¡¢¼«Æ°¤Ç³ÈÄ¥¤µ¤ì¤ë¤Î¤ÇÍ×ÁÇ¿ô¥¼¥í¤Ç¤â¹½¤ï¤Ê¤¤¤¬¡¢³ÈÄ¥ºî¶È¤¬É¬Íפʰ١¢¤½¤Îʬưºî¤¬ÃÙ¤¯¤Ê¤ë¡£
¡¡Î㡧Í×ÁÇ¿ô¥¼¥í¤ÇºîÀ®¡§WriteStream on: ''. "inspect it"
¡¡Î㡧Í×ÁÇ¿ô¤ò»ØÄꤷ¤ÆºîÀ®¡§WriteStream on: (Array new:10). "inspect it"
with: ¥á¥Ã¥»¡¼¥¸¡§on: ¥á¥Ã¥»¡¼¥¸¤ÈƱ¤¸¤¯¡¢°ú¿ô¤ËÅϤ·¤¿¥³¥ì¥¯¥·¥ç¥ó¤Ç¥¹¥È¥ê¡¼¥à¤òºîÀ®¤¹¤ë¤¬¡¢on: ¤Ç¤Ï¥¹¥È¥ê¡¼¥à¤ËÍ×ÁǤòÄɲ乤ë¤È¾å½ñ¤­¤µ¤ì¤ë¤Î¤ËÂФ·¡¢with: ¤ÇºîÀ®¤·¤¿¥¹¥È¥ê¡¼¥à¤ÏºÇ½é¤ËÅϤ·¤¿¥³¥ì¥¯¥·¥ç¥ó¤òÊÝ»ý¤·¤Æ¡¢¤½¤Î¸å¤í¤ËÍ×ÁǤ¬Äɲ䵤ì¤ë¡£
¡¡on: ¤ÎÎ㡧WriteStream on: (Array new:5). "inspect it"
¡¡with: ¤ÎÎ㡧WriteStream on: (Array new:5). "inspect it"
on: ¤È with: ¤ÇºîÀ®¤·¤¿¥¹¥È¥ê¡¼¥à¤Ç¤Ï¡¢Í×ÁǤ¬Äɲ䵤ì¤ë°ÌÃÖ¤ò¼¨¤¹ position ¤ÎÃͤ¬°ã¤Ã¤Æ¤¤¤ë»ö¤¬Ê¬¤«¤ë¡£¤Þ¤¿¡¢on: ¤ËÅϤ·¤¿°ú¿ô¤¬°ÕÌ£¤ÎÍ­¤ë¥³¥ì¥¯¥·¥ç¥ó¤Ç¤â¡¢¼è¤ê½Ð¤¹»ö¤¬¤Ç¤­¤Ê¤¤ÍͤˤʤäƤ¤¤ë¡Ê¾å½ñ¤­¤µ¤ì¤Æ¤·¤Þ¤¦¤«¤é¡©¡Ë¡£
¡¡on: ¤ÎÎ㡧(WriteStream on: 'Hello Squeak') contents. "print it"
¡¡with: ¤ÎÎ㡧(WriteStream on: 'Hello Squeak') contents. "print it"
nextPut: ¥á¥Ã¥»¡¼¥¸¡§°ú¿ô¤ËÍ×ÁǤò°ì¤Ä»ØÄꤷ¤Æ¡¢¥¹¥È¥ê¡¼¥à¤ËÄɲ乤ë»ö¤¬¤Ç¤­¤ë¡£
¡¡Î㡧ws := WriteStream on: ''. ws nextPut: $a. ws nextPut: Character space. ws nextPut: $A. ws contents. "print it"
nextPutAll: ¥á¥Ã¥»¡¼¥¸¡§°ú¿ô¤Ë¥³¥ì¥¯¥·¥ç¥ó¡Ê¤Î¥¤¥ó¥¹¥¿¥ó¥¹¡Ë¤ò»ØÄꤷ¤Æ¡¢¥¹¥È¥ê¡¼¥à¤ËÄɲ乤ë»ö¤¬¤Ç¤­¤ë¡£
¡¡Î㡧ws := WriteStream on: ''. ws nextPutAll: 'Hello'. ws nextPut: Character space. ws nextPutAll: 'Squeak!'. ws contents. "print it"


17:18:14 | 3k1 | comments(0) | TrackBacks

¼«Í³¼«ºß Squeak ¥×¥í¥°¥é¥ß¥ó¥°¡§Â裶¾Ï ´ðËÜ¥¯¥é¥¹¥é¥¤¥Ö¥é¥êõ¸¡¨¡¤½¤Î£²(1)

Squeak Logo
ʸ»úÎ󥯥饹·²¡§String, Character
¡ãString¡ä¡§String¥¯¥é¥¹¤ÏCollection¥¯¥é¥¹¤Î¥µ¥Ö¥¯¥é¥¹¤Î°Ù¡¢¥¤¥Æ¥ì¡¼¥È·Ï¥×¥í¥È¥³¥ë¤¬»ÈÍѤǤ­¤ë¡£String¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢¥·¥ó¥°¥ë¥¯¥©¡¼¥Æ¡¼¥·¥ç¥ó¤Ç°Ï¤ó¤À¥ê¥Æ¥é¥ë¡Ö'ʸ»úÎó'¡×¤ÇºîÀ®¤Ç¤­¤ë¡£
ʸ»úÎó¤ÎÏ¢·ë¡§¡Ö,¡×¥«¥ó¥Þ¥á¥Ã¥»¡¼¥¸¤Çʸ»úÎó¤òÏ¢·ë¤Ç¤­¤ë¡£¡¡Î㡧'abcdef' ,'123456'. "print it"
¢¨¡§Ê¸»ú¡ÊCharacter¡Ë¤ÏCollection¥¯¥é¥¹¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤Ï¤Ê¤¤¤Î¤Ç¡¢¥«¥ó¥Þ¥á¥Ã¥»¡¼¥¸¤ÇÏ¢·ë¤Ç¤­¤Ê¤¤¡£asString¥á¥Ã¥»¡¼¥¸¤Ç¥­¥ã¥¹¥È¤¹¤ëɬÍפ¬Í­¤ë¡£
ʸ»úÎó¤ÎÈæ³Ó¡§¡Ö=¡×¤Çʸ»úÎóƱ»Î¤òÈæ³Ó¤Ç¤­¤ë¡£ ¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¤ÇÈæ³Ó¤¹¤ë¡ÖsameAs¡§¡×¥á¥Ã¥»¡¼¥¸¤âÍ­¤ë¡£¡¡Î㡧'Squeak' = 'squeak'. "print it"¡¡'Squeak' sameAs:'squeak'. "print it"
ʸ»úÎó¤Î¥Þ¥Ã¥Á¡§¡Ömatch:¡×¥á¥Ã¥»¡¼¥¸¤Çʸ»úÎó¤ÎÉôʬ¥Þ¥Ã¥Á¤òȽÃǤǤ­¤ë¡£¥Þ¥Ã¥Á¤¹¤ë¤Ètrue¡¢¥Þ¥Ã¥Á¤·¤Ê¤¤¤Èfalse¤òÊÖ¤¹¡£¡¡È½ÃǤκݡ¢Âçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤º¡¢¡Ö*¡×¤¬0ʸ»ú°Ê¾å¤ÎǤ°Õ¤Îʸ»úÎ󡢡Ö#¡×¤¬Ç¤°Õ¤Î£±Ê¸»ú¤Ë¤Ê¤ë¡£¡¡Î㡧'h#llo sque*' match:'Hello Squeak!'. "print it"
ʸ»úÎó¤Î¸¡º÷¡§¡Ö¡Ê¸¡º÷¤µ¤ì¤ëʸ»úÎó¡Ë findString:¡Ê¸¡º÷¤¹¤ëʸ»úÎó¡Ë startingAt:¡Ê¸¡º÷³«»Ï°ÌÃ֡ˡץá¥Ã¥»¡¼¥¸¤¬»È¤¨¤ë¡ÊÂçʸ»ú¾®Ê¸»ú¤Ï¶èÊ̤µ¤ì¤ë¡Ë¡£¡¡Î㡧'Hello Squeak' findString:'Squeak' startingAt:5. "print it"
¶èÀÚ¤êʸ»ú¤Çʬ³ä¡§¡Ö¡Êʸ»úÎó¡Ë findToTokens:'¡Ê¶èÀÚ¤êʸ»ú¡Ë'¡×¥á¥Ã¥»¡¼¥¸¤¬»È¤¨¤ë¡£¡¡Î㡧'Hello Squeak' findTokens:$e. "print it"¡¡'Hello/Squeak:!' findTokens:'/:'. "print it"
ʸ»úÎó¤ÎÃÖ´¹¡§¡Ö¡Êʸ»úÎó¡Ë copyReplaceAll:¡Ê¸¡º÷ʸ»úÎó¡Ë with:¡ÊÃÖ´¹Ê¸»úÎó¡Ë¡×¥á¥Ã¥»¡¼¥¸¤¬»È¤¨¤ë¡£Ìá¤êÃͤÏÃÖ´¹¤µ¤ì¤¿Ê¸»úÎó¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ÏÊѹ¹¤µ¤ì¤Ê¤¤¡£¡¡Î㡧'Hello world!' copyReplaceAll:'world' with:'Squeak'. "print it"

¡ãCharacter¡ä¡§¥ê¥Æ¥é¥ë¡Ö$¡Êʸ»ú¡Ë¡×¤Ç¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤Ç¤­¤ë¡£¡¡Character¥¯¥é¥¹¤Î¥¯¥é¥¹¥á¥½¥Ã¥É¥«¥Æ¥´¥ê¡Öaccessing untypeable characters¡×¤Ë¡¢¥ê¥Æ¥é¥ë¤Ç¤ÏÀ¸À®¤·¤Ë¤¯¤¤¥¹¥Ú¡¼¥¹¤ä¥¿¥Ö¤òÀ¸À®¤¹¤ë¥á¥Ã¥»¡¼¥¸¤¬Í­¤ë¡£¡¡Î㡧Character space inspect. "do it"
¥¢¥¹¥­¡¼¥³¡¼¥É¤«¤éʸ»ú¤òÀ¸À®¡§¥¯¥é¥¹¥á¥½¥Ã¥É¡Övalue:¡×¥á¥Ã¥»¡¼¥¸¤Ë¥¢¥¹¥­¡¼¥³¡¼¥É¤ò»ØÄꤷ¤Æ¡¢Ê¸»ú¤òÀ¸À®¤Ç¤­¤ë¡£¡¡Î㡧Character value:65. "print it" Character value:(65+32). "print it"
ʸ»ú¤«¤é¥¢¥¹¥­¡¼¥³¡¼¥É¤òÆÀ¤ë¡§¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É¡ÖasciiValue¡×¥á¥Ã¥»¡¼¥¸¤ò»È¤¦¡£¡¡Î㡧$z asciiValue. "print it"
ʸ»úÎó¤Ø¤ÎÊÑ´¹¡§¥ª¥Ö¥¸¥§¥¯¥È¤òʸ»úÎó¤ËÊÑ´¹¤¹¤ë¤Ë¤Ï¡¢¡ÖasString¡×¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ¹¤ë¡£¡¡Î㡧12345 asString. "inspect it"¡¡Time now asString. "inspect it"
Squeak¤Î¿¸À¸ìÂбþ¡§MultiString (AbstractString¤Î¥µ¥Ö¥¯¥é¥¹) ¤È MultiCharacter (Character¤Î¥µ¥Ö¥¯¥é¥¹) ¤¬Í­¤ë¡£
¤³¤ì¤é¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢ÆüËܸì¤Ê¤É¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤äʸ»ú¤òºîÀ®¤·¤¿»þ¤Ëºî¤é¤ì¤ë¡£¡¡Î㡧'ÆüËܸì' "inspect it"¡¡'ÆüËܸì' last. "inspect it"


13:44:01 | 3k1 | comments(0) | TrackBacks

March 13, 2005

¼«Í³¼«ºß Squeak ¥×¥í¥°¥é¥ß¥ó¥°¡§Â裵¾Ï ´ðËÜ¥¯¥é¥¹¥é¥¤¥Ö¥é¥êõ¸¡¨¡¤½¤Î£±

Squeak Logo
¡ã¥Ö¥í¥Ã¥¯¡ä¡§¥Ö¥í¥Ã¥¯¤Ï¡ÖBlockContext¡×¥¯¥é¥¹¤«¤éºî¤é¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¡¢Ã±¤Ê¤ëµ­¹æ¤Ç¤Ï¤Ê¤¤¡£
¡¦[ ]¤È½ñ¤¯¤À¤±¤Ç¥¤¥ó¥¹¥¿¥ó¥¹¤¬ºîÀ®¤µ¤ì¤ë¡£[ ] value ¤È¡Övalue¡×¥á¥Ã¥»¡¼¥¸¤òÁ÷¤ë¤È¥Ö¥í¥Ã¥¯Æâ¤Îʸ¤¬¼Â¹Ô¤µ¤ì¤ë¡£¡Êvalue¥á¥Ã¥»¡¼¥¸¤¬Á÷¤é¤ì¤ë¤Þ¤Ç¥Ö¥í¥Ã¥¯Æâ¤Ï¼Â¹Ô¤µ¤ì¤Ê¤¤¡£¡Ë
Î㡧valueTest := [1 + 2]. Transcript cr; show: valueTest value. Áª¤ó¤Ç"do it"¤¹¤ë¤È¡¢Transcript¤Ë£³¤¬É½¼¨¤µ¤ì¤ë¡£
¡¦°ú¿ôÉÕ¤­¥Ö¥í¥Ã¥¯¤Ï¡¢[:°ú¿ô| ]¤È½ñ¤¯¡£[ :°ú¿ô| °ú¿ô] value: 'xxx' ¤Èvalue: ¥á¥Ã¥»¡¼¥¸¤Ç°ú¿ô¤ËÃͤòÅϤ»¤ë¡£
Î㡧[:arg | arg + 1] value: 1. ¤ò"inspect it"¤¹¤ë¤È¡¢SmallInteger¡§£²¤¬Ê֤äÆÍè¤ë¡£
¢¨¡§Squeak¤Ç¤Ï¡Övalue: value: value: value:¡×¤È£´¤Ä¤Î°ú¿ô¤Þ¤ÇÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£¤½¤ì°Ê¾å¤Î°ú¿ô¤Î¾ì¹ç¤ÏÇÛÎó¤òÅϤ¹¥á¥Ã¥»¡¼¥¸¤¬ÍÑ°Õ¤µ¤ì¤Æ¤¤¤ë¡£
Î㡧[:arg1 :arg2 | arg1 + arg2] value: 1 value: 2. ¤ò"inspect it"¤¹¤ë¤È¡¢SmallInteger¡§3¤¬Ê֤äÆÍè¤ë¡£
¡¦¥Ö¥í¥Ã¥¯Æâ¥ê¥¿¡¼¥ó [¢¬ ] ¤Ï¡¢¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ç¡Ö¢¬¡Ê^¥­¥ã¥ì¥Ã¥È¤ÇÆþÎϤ¹¤ë¡Ë¡×¤ò½ñ¤¯¤È¡¢¤É¤ó¤Ê¤Ë¥Ö¥í¥Ã¥¯¤¬¥Í¥¹¥È¡ÊÆþ¤ì»Ò¡Ë¤µ¤ì¤Æ¤¤¤Æ¤â¡¢¤½¤³¤Ç½èÍý¤ò½ªÎ»¤·¤Æ¥Ö¥í¥Ã¥¯¤«¤é³°¤ËÈ´¤±½Ð¤¹¡£¡Ê¥Ö¥í¥Ã¥¯¤ò°ì¤Ä¤À¤±È´¤±½Ð¤¹½èÍý¤ÏSqueak¤Ë¤Ï̵¤¤¡£¡Ë

¡ãÆüÉդȻþ´Ö¡ä¡§
Date¥¯¥é¥¹¡§ÆüÉÕ¤òɽ¤¹¥¯¥é¥¹¡£É¸½à¤Î½ñ¼°¤Ï DDMMYYYY¡ÊÆü·îǯ¡Ë new¤Ç¤Ï¤Ê¤¯¡¢Date today ¤Ê¤É¤ò»ÈÍѤ¹¤ë¡£
Time¥¯¥é¥¹¡§»þ´Ö¤òɽ¤¹¥¯¥é¥¹¡£É¸½à¤Î½ñ¼°¤Ï hour:minute:second am/pm ¡Ê»þ¡§Ê¬¡§Éà ¸áÁ°¡¿¸á¸å¡Ë¡£ new¤Ç¤Ï¤Ê¤¯¡¢Time now ¤Ê¤É¤ò»ÈÍѤ¹¤ë¡£

¡ã¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹·²¡ä¡§¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹·²¤Î¥ë¡¼¥È¤Ï Collection¡ÊÃê¾Ý¡Ë¥¯¥é¥¹
½ç½ø̵¤·¥³¥ì¥¯¥·¥ç¥ó¡§Bag, Set
¡¦Bag¡§Ãæ¿È¤Ë¤É¤ó¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤âÆþ¤ì¤é¤ì¤ë¡£½ç½ø¤Ï̵´Ø·¸¤Ç¡¢½ÅÊ£¤â£Ï£Ë¡£
¡¦Set¡§Bag¤ÈƱ¤¸¤Ç¤É¤ó¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤âÆþ¤ì¤é¤ì¤ë¤¬¡¢½ÅÊ£¤ÏÉԲġ£
½ç½øÉÕ¤­¥³¥ì¥¯¥·¥ç¥ó¡§Array, OrderedCollection, SortedCollection
¡¦Array¡§½ç½øÉÕ¤­¤Ç¡¢ºîÀ®»þ¤Î¥µ¥¤¥º¤¬¸ÇÄê¤Î¥³¥ì¥¯¥·¥ç¥ó¡£¸Ä¡¹¤ÎÍ×ÁǤÏÊѹ¹¤Ç¤­¤ë¤¬¡¢Í×ÁÇ¿ô¤òÄɲῺï½ü¤Ç¤­¤Ê¤¤¡£¥ê¥Æ¥é¥ë #(Í×ÁÇ£± Í×ÁÇ£² ¡Ä) ¤ÇºîÀ®²Äǽ¡£
¡¦OrderedCollection¡§½ç½øÉÕ¤­¤Ç¥µ¥¤¥º²ÄÊѤΥ³¥ì¥¯¥·¥ç¥ó¡£ new¤Ç¥µ¥¤¥º¤Ê¤·¤òºîÀ®¤·¤Æ¡¢add: ¤ä addFirst:¤ÇÍ×ÁǤòÄɲòÄǽ¡£
¡¦SortedCollection¡§Í×ÁǤÎʤÙÂؤ¨¤ò¼«Æ°Åª¤Ë¹Ô¤¦¥³¥ì¥¯¥·¥ç¥ó¡£ ɸ½à¤Î¥½¡¼¥È½ç¤Ï <= ¤Ç¤ÎÈæ³Ó¡£ sortBlock: [:a :b | a > b]¤Ê¤É¤Ç¥½¡¼¥ÈÊýË¡¤ò»ØÄꤷ¤ÆSortedCollection¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÀ¸À®¤Ç¤­¤ë¡£
¥­¡¼ÉÕ¤­¥³¥ì¥¯¥·¥ç¥ó¡§Dictionary, IdentDictionary
¡¦Dictionary¡§¼­½ñ¤ÎÍͤˡ¢¡Ö¥­¡¼¡×¤È¡ÖÃ͡פΥڥ¢¤Ç¾ðÊó¤òÊÝ»ý¤¹¤ë¡Ê½ç½ø¤ÏÊݾڤµ¤ì¤Ê¤¤¡Ë¡£Dictionary¤Ï = ¤Ç¡Ö¥­¡¼¡×¤òÈæ³Ó¤¹¤ë¤¿¤á¡¢¥­¡¼¤Ë¤Ï¿ô»ú¤äʸ»úÎó¤Ê¤É¡¢= ¤ÇÈæ³Ó¤Ç¤­¤ë¤â¤Î¤ò»ÈÍѤ¹¤ë¡£
¡¦IdentDictionary¡§IdentDictionary ¤Ï¡¢== ¤Ç¡Ö¥­¡¼¡×¤òÈæ³Ó¤¹¤ë¡£ == ¤Ç¥ª¥Ö¥¸¥§¥¯¥È¡ÊVMÆâ¤Î¥Ý¥¤¥ó¥¿¡Ë¤òÈæ³Ó¤¹¤ë°Ù¡¢¸¡º÷¤Ï¹â®¤À¤¬¡¢¥­¡¼¤È¤·¤Æʸ»úÎ󤬻Ȥ¤Æñ¤¯¤Ê¤ë¡£¡Ê#¤Ç¥·¥ó¥Ü¥ë¤Ë¤¹¤ë¤Ê¤É¡¢¹©Éפ¬É¬Íס£¡Ë

¥³¥ì¥¯¥·¥ç¥ó¤ÎÊÑ´¹¡§Collection¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É¥«¥Æ¥´¥ê¡Öconverting¡×Æâ¤Ë¡Öas¡ã¥¯¥é¥¹Ì¾¡ä¡×¤Ç´ö¤Ä¤«ÊÑ´¹Íѥ᥽¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£¡Ö¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹ as¡ã¥¯¥é¥¹Ì¾¡ä¡×¤Ç¡¢Ãͤ¬¥³¥Ô¡¼¡¦ÊÑ´¹¤µ¤ì¡¢¡ã¥¯¥é¥¹Ì¾¡ä·¿¤Î¿·¤¿¤Ê¥¤¥ó¥¹¥¿¥ó¥¹¤¬Ê֤äÆÍè¤ë¡£

yourself¡§¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É¡Êadd:, at:put: ¤Ê¤É¡Ë¤Î¿¤¯¤Ï¡¢¤½¤ÎÌá¤êÃͤ¬¥ì¥·¡¼¥Ð¡Ê¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¡Ë¤Ç¤Ï̵¤¯¡¢¥¤¥ó¥¹¥¿¥ó¥¹¥á¥½¥Ã¥É¡Êadd:, at:put: ¤Ê¤É¡Ë¤Î°ú¿ô¤Ë¤Ê¤Ã¤Æ¤¤¤ë°Ù¡¢yourself ¥á¥Ã¥»¡¼¥¸¤ò¡Ê¥«¥¹¥±¡¼¥É ; ¤ÎºÇ¸å¤Ë¡ËÁ÷¿®¤¹¤ë»ö¤Ç¡¢ÌÀ¼¨Åª¤Ë¥ì¥·¡¼¥Ð¼«¿È¤òÊÖ¤·¤¿¤¤»þ¤Ë»ÈÍѤ¹¤ë¡£
Î㡧
yourself¤¬Ìµ¤¤»þ¡§(Bag new) add: 1; add: 2; add: 3.¡§"inspect it"¤¹¤ë¤È¡¢add: 3¤Î°ú¿ô 3 ¤¬Ê֤ꡢ˾¤ó¤À·ë²Ì¤Ë¤Ê¤é¤Ê¤¤¡£
yourself¤¬Í­¤ë»þ¡§(Bag new) add: 1; add: 2; add: 3; yourself.¡§"inspect it"¤¹¤ë¤È¡¢ a Bag(1 2 3) ¤È˾¤ó¤À¤â¤Î¤Ë¤Ê¤ë¡£

¥¤¥Æ¥ì¡¼¥È¡Ê·«¤êÊÖ¤·¡Ë¥×¥í¥È¥³¥ë¡§¥³¥ì¥¯¥·¥ç¥ó¥¯¥é¥¹·²¤ÎÍ×ÁǤò¡¢·«¤êÊÖ¤·¼è¤ê½Ð¤¹¥á¥½¥Ã¥É¡£¡Ê°ÕÌ£¤Î»÷Ä̤俼곤­·²¤ò¥×¥í¥È¥³¥ë¤È¸Æ¤Ö¡Ë
¡¦do¡§¡ã¥³¥ì¥¯¥·¥ç¥ó¡ä do: [:each | ¡ã½èÍý¡ä]¡§¥³¥ì¥¯¥·¥ç¥ó¤«¤éϢ³¤·¤ÆÍ×ÁǤò¼è¤ê½Ð¤·¡¢¥Ö¥í¥Ã¥¯Æâ¤Î½èÍý¤ò¹Ô¤¦¡£
¡¦select¡§¡ã¥³¥ì¥¯¥·¥ç¥ó¡ä select: [:each | ¡ãÈæ³Ó¼°¡ä]¡§¥³¥ì¥¯¥·¥ç¥ó¤«¤é¼è¤ê½Ð¤·¤¿Í×ÁǤò¥Ö¥í¥Ã¥¯Æâ¤Î¼°¤ÇÈæ³Ó¤·¡¢true¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹¡£
¡¦reject¡§select¤È¤ÏµÕ¤Ë¡¢¥Ö¥í¥Ã¥¯Æâ¤Î¼°¤ÇÈæ³Ó¤·¤¿·ë²Ì¤¬¡¢false¤ÎÍ×ÁǤò¼è¤ê½Ð¤¹¡£
¡¦detect¡§¥Ö¥í¥Ã¥¯Æâ¤Î¼°¤ÇÈæ³Ó¤·¡¢ºÇ½é¤Ëtrue¤Ë¤Ê¤Ã¤¿Í×ÁǤΤߤòÊÖ¤·¤Æ¡¢¤½¤³¤Ç½èÍý¤ò½ªÎ»¤¹¤ë¡£true¤ÎÍ×ÁǤ¬Ìµ¤±¤ì¤Ð¥¨¥é¡¼¡Êerror: 'Object is not in the collection.'¡Ë¤òÊÖ¤¹¡£¡¡¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿»þ¤Ë½èÍý¤ò¤µ¤»¤ë¤Ë¤Ï¡¢detect:ifNone: ¤ò»È¤¦¡£
¡¦collect¡§¡ã¥³¥ì¥¯¥·¥ç¥ó¡ä collect: [:each | ¡ã²Ã¹©½èÍý¡ä]¡§¥³¥ì¥¯¥·¥ç¥ó¤Î³ÆÍ×ÁǤËÂФ·¤Æ²Ã¹©½èÍý¤ò¹Ô¤¦¡£
¡¦inject:into¡§¡ã¥³¥ì¥¯¥·¥ç¥ó¡ä inject:¡ã½é´ü¥ª¥Ö¥¸¥§¥¯¥È¡ä [:obj :each | ¡ã½èÍý¡ä]¡§¥Ö¥í¥Ã¥¯Æâ°ú¿ô obj ¤Ë¤Þ¤º½é´ü¥ª¥Ö¥¸¥§¥¯¥È¤¬Æþ¤ê¡¢each¤Ë¥³¥ì¥¯¥·¥ç¥ó¤ÎºÇ½é¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬Æþ¤ê¡¢½èÍý¤ò¹Ô¤¦¡£¼¡¤Ë¡¢½èÍý¤Î·ë²Ì¤¬ obj ¤ËÆþ¤ê¡¢¥³¥ì¥¯¥·¥ç¥ó¤Î¼¡¤ÎÍ×ÁǤ¬each¤ËÆþ¤ê¡¢½èÍý¤ò¹Ô¤¦¡Ä¤Î·«¤êÊÖ¤·¤Ç¡¢¥³¥ì¥¯¥·¥ç¥ó¤ÎÍ×ÁǤ¬Ìµ¤¯¤Ê¤ë¤Þ¤Ç½èÍý¤¬Â³¤¯¡£
¡¦keysDo¡§¡ã¥Ç¥£¥¯¥·¥ç¥Ê¥ê¡ä keysDo: [:each | ¡ã½èÍý¡ä]¡§Dictionary·Ï¥³¥ì¥¯¥·¥ç¥ó¤Ç¡Ö¥­¡¼¡×¤ò¼è¤ê½Ð¤·¤Æ½èÍý¤¹¤ë¡£
¡¦valuesDo¡§¡ã¥Ç¥£¥¯¥·¥ç¥Ê¥ê¡ä valuesDo: [:each | ¡ã½èÍý¡ä]¡§¥Ç¥£¥¯¥·¥ç¥Ê¥ê¤«¤é¡¢¡ÖÃ͡פò¼è¤ê½Ð¤·¤Æ½èÍý¤¹¤ë¡£
¡¦keysAndValuesDo¡§¡ã¥Ç¥£¥¯¥·¥ç¥Ê¥ê¡ä keysAndValuesDo: [:key :value | ¡ã½èÍý¡ä]¡§¥Ç¥£¥¯¥·¥ç¥Ê¥ê¤«¤é¡Ö¥­¡¼¡×¤È¡ÖÃ͡פò¤½¤ì¤¾¤ì¼è¤ê½Ð¤·¤Æ½èÍý¤¹¤ë¡£
¡¦associationsDo¡§¡ã¥Ç¥£¥¯¥·¥ç¥Ê¥ê¡ä associationsDo: [:associations | ¡ã½èÍý¡ä]¡§Association¤Ï¡Ö¥­¡¼¡×¤È¡ÖÃ͡פΥڥ¢¤Ç¡¢¡Ö¥­¡¼ -&gt; Ã͡פȡÚ-&gt; ¡Û¥á¥Ã¥»¡¼¥¸¤ÇºîÀ®¤Ç¤­¤ë¡£ ºîÀ®¤µ¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¡Ö¥­¡¼¡×¤ò¼è¤ê½Ð¤¹¤Ë¤Ï¡Ökey¡×¥á¥½¥Ã¥É¤ò¡¢¡ÖÃ͡פò¼è¤ê½Ð¤¹¤Ë¤Ï¡Övalue¡×¥á¥½¥Ã¥É¤òÁ÷¤ë¡£


16:47:45 | 3k1 | comments(0) | TrackBacks