Ruby 101£º¶¯Ì¬±à³Ì
Ruby 101£º¶¯Ì¬±à³Ì
Written by Allen Lee
µ±method_missingµÄħ·¨Ê§Ð§Ê±……
ÔÚÉÏһƪÎÄÕÂÀÎÒÃÇͨ¹ýÖØдHashÀàµÄmethod_missing·½·¨°ÑHash¶ÔÏóÄ£Äâ³ÉÄäÃû¶ÔÏ󣬵«ÊÇ£¬ÕâÖÖ×ö·¨ÓÐʱ»á²úÉúһЩĪÃûÆäÃîµÄÎÊÌ⣬¾Ù¸öÀý×Ó°É£¬¼ÙÈçÎÒ°Ñprocess·½·¨£¨ÍêÕûʵÏֲμûÉÏһƪÎÄÕµĴúÂë31£©µÄoptions²ÎÊý´ÓÕâÑù£º
´úÂë 1
¸Ä³ÉÕâÑù£º
´úÂë 2
ÎÒÃǽ«»á·¢ÏÖ£¬²»ÂÛoptions²ÎÊýµÄcountȡʲôֵ£¬ÎÒÃÇ×ÜÊǵõ½Á½±¾Ê飬Ϊʲô£¿ÏëÏë¿´£¬method_missing·½·¨µÄ´¥·¢Ìõ¼þÊÇʲô£¿½öµ±ÎÒÃǵ÷Óõķ½·¨²»´æÔÚʱ£¬method_missing·½·¨²ÅÓлú»á³ö³¡£¬µ«ÊÇ£¬HashÀà±¾Éí¾ÍÓÐcount·½·¨£º
ͼ 1
Õâ´òÆÆÁËmethod_missing·½·¨µÄ´¥·¢Ìõ¼þ£¬»»¾ä»°Ëµ£¬method_missing·½·¨±»count·½·¨"½Øºú"£¨Â齫ÊõÓÁË¡£HashÀàµÄcount·½·¨·µ»Ø¼ü/Öµ¶ÔµÄ¸öÊý£¬¶øoptions²ÎÊýĬÈϾÍÓÐÁ½¸ö¼ü/Öµ¶Ô£¬Èç¹ûÎÒÃÇûÓÐÌí¼Ó¶îÍâµÄ¼ü/Öµ¶Ô£¬count·½·¨µÄ·µ»ØÖµ½«»á×ÜÊÇ2£¬Õâ¾ÍÊÇΪʲôÐÞ¸Äoptions²ÎÊýÖ®ºóÎÒÃÇ×ÜÊǵõ½Á½±¾Êé¡£ÄÇô£¬ÈçºÎ½â¾öÕâ¸öÎÊÌ⣿
ÏÔÈ»£¬method_missing·½·¨ºÍcount·½·¨ÎÞ·¨Í¬Ê±´æÔÚ£¬·ñÔòת·¢ÏûÏ¢µÄÂß¼×ÜÊDZ»ºöÂԵģ¬µ«ÎÒÃDz»ÄÜÒƳýcount·½·¨£¬ÒòΪÕâÑù»áµ¼ÖÂÒÀÀµËüµÄ´úÂë²»ÄÜÕý³£¹¤×÷£¬ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇÖ»ºÃ°Ñת·¢ÏûÏ¢µÄÂß¼ÒÆÖÁ±ð´¦ÁË£¬ÄÇô£¬·ÅÄÄÄØ£¿»¹¼ÇµÃ¡¶Ruby 101£º¶ÔÏóºÍ·½·¨¡·×îºóÄǸöBookStoreÀàÂð£¿ÎÒÃÇ¿ÉÒÔ·ÂЧËüµÄ×ö·¨£¬ÎªHashÀà´´½¨Ò»¸ö´úÀíÀ࣬Ȼºó°Ñת·¢ÏûÏ¢µÄÂß¼·Åµ½´úÀíÀàµÄmethod_missing·½·¨À
´úÂë 3
ÕâÑù¾Í²»ÅÂcount·½·¨µÄ¸ÉÈÅÁË£º
ͼ 2
µ±È»£¬Èç¹ûÄãÏëÒªµÄÖ»ÊÇÕâЩ£¬ÄǾÍûÓбØÒªÁíÆð¯ÔîÁË£¬ÒòΪʹÓÃRuby×Ô´øµÄOpenStructÀàÒ²¿ÉÒÔ´ïµ½ÏàͬµÄЧ¹û£º
ͼ 3
µ«ÊÇ£¬OpenStructÀ಻֧³ÖǶÌ×µÄHash¶ÔÏó£¬ÄãÖ»ÄÜͨ¹ýperson1.address[:city]À´·ÃÎÊÏÂÃæÕâ¸ö¶ÔÏóµÄ³ÇÊÐÐÅÏ¢£º
´úÂë 4
Èç¹ûÄãÏ£Íûͨ¹ýperson1.address.cityÀ´·ÃÎÊÕâ¸ö¶ÔÏóµÄ³ÇÊÐÐÅÏ¢£¬ÒªÃ´ÏÔʽµØ°ÑÄÚǶµÄHash¶ÔÏó´´½¨ÎªOpenStruct¶ÔÏó£º
´úÂë 5
ҪôÀ©Õ¹AnonymousObjectÀ࣬ʹËüÖ§³ÖǶÌ×µÄHash¶ÔÏó£¬Èç¹ûÄãÓÐÐËȤµÄ»°£¬²»·Á°ÑÎÕÕâ¸ö»ú»áÁ·Ï°Ò»Ï°ɣ¡
ÏûÏ¢´úÀí
¼ÈÈ»ÎÒÃÇ¿ÉÒÔͨ¹ý´úÀíÀà½Ø»ñ²¢×ª·¢ÏûÏ¢£¬ºÎ²»ÔÚ´Ë»ù´¡ÉϼӵãÏëÏóÁ¦£¿¼ÙÉèÎÒÓÐÕâÑùÒ»¸öÀࣺ
´úÂë 6
ÎÒÏëÔÚµ÷ÓÃmethod1·½·¨Ö®Ç°×öһЩÊÂÇ飬ÔÚµ÷ÓÃmethod2·
Ïà¹ØÎĵµ£º
Á½ÖÖ²»Í¬µÄÓïÑÔ,²»Í¬µÄ±í´ï!
Python½Å±¾ÊµÏÖ.
""
"
File Name : clean.py
File Date : 2009/11/5 14:22:56
Author : DannyLai
Purpose : Cle ......
#include < ruby.h > //
static int id_sum;
int Values[] = {5, 10 ,15,-1,20,0};
static VALUE wrap_sum(VALUE args)
{
VALUE * values = (VALUE *) args;
VALUE summer = values[0];
VALUE max = values[1];
return rb_funcall(summer,id_sum,1,max);
}
static VALUE ......
While looking for information on the subject, I looked into the ONLamp article Extending Ruby with C by Garrett Rooney, the Extending Ruby chapter in the Pickaxe, README.EXT (located at /usr/share/doc/ruby1.8-dev/README.EXT.gz on my Ubuntu system) and got some help from Kjetil.
The resulting file c ......
client.rb
======================================================================
require 'drb'
SERVER_IP = 'druby://127.0.0.1:6666'
CLIENT_IP = 'druby://10.10.10.102:7777'
c_path = 'd:/test/'
class Client
def initialize(path)
Dir.chdir(path)
end
def mk ......