Ruby 101£º·½·¨¶ÔÏó
Ruby 101£º·½·¨¶ÔÏó
Written by Allen Lee
´Ó·½·¨µ÷ÓÃ˵Æð
ÔÚÉÏһƪÎÄÕÂÀÎÒÃÇ¿´µ½µ÷ÓöÔÏóµÄ·½·¨ÊµÖÊÉÏÊÇÏò¶ÔÏó·¢ËÍÏûÏ¢£¬ÏÂÃ棬ÎÒÃÇÔÙÀ´¿´Ò»¸öÓÐȤµÄÓ¦Óá£ÔÚRubyÀ×Öµä¿ÉÒÔͨ¹ý {key => value} À´´´½¨£¬Èç¹ûÄãʹÓõİ汾ÊÇ1.9»òÒÔÉÏ£¬µ±keyµÄÀàÐÍÊÇSymbolʱ£¬´´½¨×ÖµäµÄÓï·¨¿ÉÒÔ½øÒ»²½¼ò»¯Îª {key: value} £¨×¢Ò⣬ðºÅÒª½ôÌùÔÚkeyºóÃ棩£¬ÕâʹµÃÎÒÃÇ¿ÉÒÔ´´½¨ÕâÑùµÄ¶ÔÏó£º
´úÂë 1
ÓÐûÓоõµÃÕâ¸öд·¨ºÜÃæÊ죿ÓÐЩͬѧ¿ÉÄÜÒѾ¿´³öÀ´ÁË£¬Õâ¸öд·¨ºÜÏñJSON£¬ÊÂʵÉÏ£¬Õâ¸ö´úÂëÕýÊÇ·ÂÕÕWikipediaÉϵÄJSONʾÀý´úÂëд³öÀ´µÄ£¬È»¶ø£¬ÓÉÓÚËü±¾ÉíÊÇÒ»¸ö×Öµä¶ÔÏó£¬ÔÚ·ÃÎÊÀïÃæµÄÄÚÈÝʱÐèҪʹÓÃ×ÖµäµÄÓï·¨£º
´úÂë 2
ÏÖÔÚ£¬Çë˼¿¼Ò»Ï£¬ÓÐûÓа취ʹËü½ÓÊÜÕâÑùµÄ×ö·¨ÄØ£º
´úÂë 3
ÓÐЩͬѧ¿ÉÄÜÒѾ·´Ó¦¹ýÀ´ÁË——´ò¿ªHashÀ࣬ÖØдmethod_missing·½·¨£º
´úÂë 4
µ±ÎÒÃǵ÷ÓÃfirst_nameºÍphone_numbersµÈ²»´æÔڵķ½·¨Ê±£¬¾Í»á´¥·¢method_missing·½·¨£¬ËüÊ×Ïȼì²é×ÖµäÊÇ·ñ°üº¬Õâ¸ö·½·¨Ãû£¬ÈôÊÇ£¬·µ»Ø¶ÔÓ¦µÄÖµ£¬·ñÔò£¬×ª½»super´¦Àí¡£ÏÂÃ棬ÎÒÃÇÖ´ÐÐһϴúÂ룺
ͼ 1
ºÜºÃ£¬»ù±¾ÉÏ´ïµ½ÎÒÃǵÄÔ¤ÆÚÁË£¬µ«ÊÇ£¬ÕâÖÖ×ö·¨ÖÁÉÙ´æÔÚÁ½¸ö±×²¡£¬µÚÒ»£¬ËüÇ¿ÖÆËùÓÐ×ÖµäʹÓÃÕâÖÖÖض¨ÏòÂß¼£¬µÚ¶þ£¬Èç¹û×ÖµäµÄÏÖÓз½·¨ºÍËüµÄ¼ü³öÏÖÖØÃû£¬Öض¨ÏòÂß¼½«±»ºöÂÔ£¬ÒòΪÏÖÓз½·¨½«±»ÓÅÏȵ÷Ó㬲»»á´¥·¢method_missing·½·¨£¬ÄÇô£¬Ôõô½â¾öÕâÁ½¸öÎÊÌ⣿àÅ……ºÜ±§Ç¸£¬ÕâЩÎÊÌâ²»ÊǽñÌìµÄÖ÷½Ç£¬»¹ÊÇ´ýµ½ËüÃǵÄÖ÷Ï·ÉÏÑÝ֮ʱÔÙÐзֽâ°É……
ÏÖÔÚ£¬Çë˼¿¼Ò»¸öÎÊÌ⣬µ±ÎÒÃǵ÷ÓÃÒ»¸ö·½·¨Ê±£¬ÎÒÃÇÖ»Ðè"Ö±ºôÆäÃû"£¬Ïñ´úÂë3µÄfirst_nameºÍcityµÈ·½·¨ÄÇÑù£¨µ±È»£¬¼ÓÉÏ"()"Ò²ÊÇ¿ÉÒԵģ¬¼´person1.first_name()£©£¬ÕâÒâζ×Å£¬µ±ÎÒÃÇÒýÓÃÒ»¸ö·½·¨µÄÃû×Öʱ£¬ÎÒÃÇʵ¼ÊÉÏÔÚÒýÓÃËüµÄ·µ»ØÖµ£¬ÄÇô£¬Èç¹ûÎÒÏë°ÑÒ»¸ö·½·¨±¾Éí¶ø²»ÊÇËüµÄ·µ»ØÖµ×÷Ϊ²ÎÊý´«¸øÁíÒ»¸ö·½·¨ÄØ£¿¿¼ÂÇÕâÑùÒ»¸öÇé¾°£¬ÎÒÓÐÒ»¸ö¹ºÎï³µ£¬ÄÚÓÐͼÊéÈô¸É£º
´úÂë 5
ͼÊéͨ¹ýcalc_preferential_price·½·¨¼ÆËãÓŻݼ۸ñ£º
´úÂë 6
ÏÖÔÚ£¬ÎÒÏë´´½¨Ò»¸öcheck_out·½·¨£¬ÓÃÀ´¼ÆËã»õ¿î£º
´úÂë 7
ÄÇô£¬ÎÒ¸ÃÈçºÎ°Ñcalc_preferential_price·½·¨´«¸øcheck_out·½·¨£¿
Ö±½Ó°Ñ·½·¨µÄÃû×Ö´«¸øËü¿Ï¶¨²»ÐУ¬ÒòΪ"Ö±ºôÆäÃû"Òâζ×ŵ÷ÓÃËü£¬µÃµ½µÄÊÇËüµÄ·µ»ØÖµ
Ïà¹ØÎĵµ£º
¶¨Òå
¡¡RoRÊÇRuby on RailsµÄËõд¡£Ruby on RailsÊÇÒ»¸öÓÃÓÚ±àдÍøÂçÓ¦ÓóÌÐòµÄ¿ò¼Ü£¬Ëü»ùÓÚ¼ÆËã»úÈí¼þÓïÑÔRuby£¬¸ø³ÌÐò¿ª·¢ÈËÔ±Ìṩǿ´óµÄ¿ò¼ÜÖ§³Ö¡£Ruby on Rails°üÀ¨Á½²¿·ÖÄÚÈÝ£ºRubyÓïÑÔºÍRails¿ò¼Ü¡£
ʲôÊÇRuby?
¡¡¡¡Ruby ÓïÑÔÊÇÒ»ÖÖ¶¯Ì¬ÓïÑÔ£¬ËüÓëPython¡¢SmalltalkºÍPerlÕâ3ÖÖ±à³ÌÓïÑÔÓÐЩÀàËÆ¡£RubyÓïÑÔÆðÔ´ÓÚÈ ......
“Ñ»·”»áÓÃÔÚ³ÌÐòÖеĸ÷Öֵط½¡£¶øÔÚÑ»·µÄµØ·½ÉÆÓÓµü´úÆ÷”£¬ÔòÊÇÊìÁ·½øÐÐRuby³ÌÐòÉè¼ÆµÄÖØÒª¹Ø¼ü¡£
²»¹ý£¬µü´úÆ÷ȷʵÓбȽϳéÏóµÄµØ·½£¬Óï·¨Ò²Óеã¹ÖÒ죨ÓÈÆäÊÇyieldµÄÓ÷¨£©£¬¹âÊÇÒÀ¿¿ÎÄ×Ö˵Ã÷¡¢¿´Ò»Á½¸öʾÀý£¬»¹ÊDz»Ì«ºÃ¶®¡£Æäʵ£¬µ±³õ±ÊÕß¿ªÊ¼Ñ§Ï°Rubyʱ¾Í¿¨ÔÚÕâÀºÜ¾Ã¶¼¸ã²»¶®¡£
ËùÒÔÔÚ± ......
def delVss(path)
if File.directory?(path)
for f in d = Dir.open(path)
fpath = File.join(path, f)
if(f!="."&&f!="..")
......
ÉÏÉÏÖÜÔÚÊéµê¿´µ½Ò»±¾¡¶Ruby
Éè¼Æģʽ¡·£¬¼ñÆðÀ´ 10 ·ÖÖÓ¿´Í꣬ÈÓÁË£¨±ðÎÊÎÒΪʲô……£©
ÏÂÃæÓÃ Ruby
ддÉè¼Æģʽ£¬Ë³±ãÅúÒ»Åú Java ºÍ Gof
¡£
1.Factory
ºÍ Abstract Factory
class
Factory
attr_accessor :product
......