Ãâ·Ñ×¢²á ²é¿´ÐÂÌû |

Chinaunix

  ƽ̨ ÂÛ̳ ²©¿Í ÎÄ¿â
×î½ü·ÃÎÊ°å¿é ·¢ÐÂÌû
²é¿´: 65042 | »Ø¸´: 9
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

rubyɨä֮block [¸´ÖÆÁ´½Ó]

ÂÛ̳»ÕÕÂ:
0
Ìøתµ½Ö¸¶¨Â¥²ã
1Â¥ [ÊÕ²Ø(0)] [±¨¸æ]
·¢±íÓÚ 2010-11-18 14:44 |Ö»¿´¸Ã×÷Õß |µ¹Ðòä¯ÀÀ
rubyµÄblockÆäʵ¾ÍÊÇÄäÃûº¯Êý£¨»òCÀïµÄº¯ÊýÖ¸Õ룩¡£
ÔÚrubyÀ·½·¨´óÁ¿Ê¹ÓÃblock×÷Ϊ²ÎÊý£¬¿´ÆðÀ´ºÜ¿á£¬Ð´ÆðÀ´Ò²ºÜ¸ßЧ¡£

ÀýÈ磬¶ÔÕâôһ¸öÊý×飺

x = [3,1,4,2,9,0]

ÏëÒªÕÒ³öËùÓÐСÓÚ3µÄ³ÉÔ±£¬ÄÇô´ó¼Òͨ³£»áÏëµ½Êý×éµÄselect·½·¨£º

z = x.select {|s| s <3}

select·½·¨½ÓÊÜÒ»¸öblockΪ²ÎÊý¡£
ÄÇôselect¾ßÌåÊÇÈçºÎÖ´ÐÐÕâ¸öblockµÄÄØ£¿ÆäʵÃØÃܾÍÔÚÓÚrubyµÄyieldÕâ¸ö·½·¨£¬ËüÓÃÀ´Ö´ÐÐblock¡£


ÀýÈ磬ÔÛÃÇ×Ô¼º¿ÉÒÔдһ¸ömyfind·½·¨À´´úÌæselect:
  1. class Array
  2.     def myfind
  3.        if block_given?
  4.            z = []
  5.            each {|s| z << s if yield s}
  6.            z
  7.        else
  8.            raise "no block given"
  9.        end
  10.     end
  11. end
¸´ÖÆ´úÂë
ÎÒÃÇÊ×ÏÈ´ò¿ªArrayÀࣨ¼ÇסrubyµÄËùÓÐÀ඼ÊÇ¿ª·ÅµÄ£©£¬È»ºó¶¨Òåmyfindº¯Êý£¨def myfind£©¡£
Èç¹ûÓÐblock²ÎÊý´«¸ømyfind£¬ÄÇôִÐÐeach {|s| z << s if yield s}Õâ¾ä£¬±íʾ±éÀúselfÊý×飬°Ñÿһ¸öÔªËØ×÷Ϊ²ÎÊý´«¸øyield¡£
È»ºóyield¾ÍÖ´ÐÐÓû§´«ÈëµÄblock£¬²¢ÅжÏÖ´Ðнá¹û¡£Èç¹ûΪÕæ¾Í°ÑÔªËØѹÈëzÊý×飬×îºó·µ»ØzÊý×é¡£

Èç¹ûûÓÐblock´«¸ømyfind·½·¨£¬»áraiseÒ»¸öÔËÐÐʱ´íÎó£¬ËµÃ÷"no block given"¡£


OK ÈÃÎÒÃÇ¿´ÍêÕû½Å±¾£º
  1. x = [3,1,4,2,9,0]

  2. class Array
  3.     def myfind
  4.        if block_given?
  5.            z = []
  6.            each {|s| z << s if yield s}
  7.            z
  8.        else
  9.            raise "no block given"
  10.        end
  11.     end
  12. end

  13. z = x.myfind {|s| s < 3}
  14. p z
¸´ÖÆ´úÂë
ÔËÐнá¹ûΪ£º

$ ruby block.rb
[1, 2, 0]

ÂÛ̳»ÕÕÂ:
0
2Â¥ [±¨¸æ]
·¢±íÓÚ 2010-11-27 11:28 |Ö»¿´¸Ã×÷Õß
ÕâһϵÁеÄRubyÌûµÄ³ö´¦ÔÚÄĶùѽ£¿

ÂÛ̳»ÕÕÂ:
0
3Â¥ [±¨¸æ]
·¢±íÓÚ 2010-11-29 09:22 |Ö»¿´¸Ã×÷Õß
ÕâһϵÁеÄRubyÌûµÄ³ö´¦ÔÚÄĶùѽ£¿
2gua ·¢±íÓÚ 2010-11-27 11:28



    ÎÒ×Ô¼ºÐ´µÄŶ¡£¡£

ÂÛ̳»ÕÕÂ:
0
4Â¥ [±¨¸æ]
·¢±íÓÚ 2011-02-22 18:54 |Ö»¿´¸Ã×÷Õß
¼¸¸öÎÊÌ⣺

1.block_given? Õâ¸öÊÇ´ÓÄÄÀïÀ´µÄ£¿ ÎÒÔõôri²»µ½£¿
2.each {|s| z << s if yield s}  ÖеÄeach£¬ÊDz»ÊǾÍÊÇself.each,ÎÒÊÔÁËһϽá¹ûÒ»Ñù£¬µ«ÊDz»¸ÒÈ·¶¨£¬»¹Çëlz´Í½Ì¡£
3.Â¥Ö÷ÄÐÅ®£¿

ÂÛ̳»ÕÕÂ:
0
5Â¥ [±¨¸æ]
·¢±íÓÚ 2011-11-17 02:59 |Ö»¿´¸Ã×÷Õß
¸Ð¾õ²»´í£¬¿´ÆðÀ´ºÜ¿á¡£

ÂÛ̳»ÕÕÂ:
0
6Â¥ [±¨¸æ]
·¢±íÓÚ 2014-03-25 07:25 |Ö»¿´¸Ã×÷Õß
»Ø¸´ 4# ziyiu123


    ͬÎÊÕâ¸ö

ÂÛ̳»ÕÕÂ:
7
Ðç¹·
ÈÕÆÚ:2013-12-15 20:43:38¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2014-03-05 01:33:12¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2014-03-15 20:31:17δÑò
ÈÕÆÚ:2014-03-25 23:48:20³óÅ£
ÈÕÆÚ:2014-04-07 22:37:44ËÈÉß
ÈÕÆÚ:2014-04-11 21:58:0915-16Èü¼¾CBAÁªÈüÖ®Çൺ
ÈÕÆÚ:2016-03-17 20:36:13
7Â¥ [±¨¸æ]
·¢±íÓÚ 2014-03-26 03:47 |Ö»¿´¸Ã×÷Õß
±¾Ìû×îºóÓÉ rubyish ÓÚ 2014-04-03 01:36 ±à¼­

  

ÂÛ̳»ÕÕÂ:
7
Ðç¹·
ÈÕÆÚ:2013-12-15 20:43:38¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2014-03-05 01:33:12¼¼ÊõͼÊé»ÕÕÂ
ÈÕÆÚ:2014-03-15 20:31:17δÑò
ÈÕÆÚ:2014-03-25 23:48:20³óÅ£
ÈÕÆÚ:2014-04-07 22:37:44ËÈÉß
ÈÕÆÚ:2014-04-11 21:58:0915-16Èü¼¾CBAÁªÈüÖ®Çൺ
ÈÕÆÚ:2016-03-17 20:36:13
8Â¥ [±¨¸æ]
·¢±íÓÚ 2014-03-26 03:53 |Ö»¿´¸Ã×÷Õß
±¾Ìû×îºóÓÉ rubyish ÓÚ 2014-04-03 01:37 ±à¼­

Ì«¸ÐлÁË¡£

ÂÛ̳»ÕÕÂ:
0
9Â¥ [±¨¸æ]
·¢±íÓÚ 2014-03-26 06:44 |Ö»¿´¸Ã×÷Õß
»Ø¸´ 8# rubyish


    :wink: {:3_189:}

ÂÛ̳»ÕÕÂ:
6
Êý¾Ý¿â¼¼Êõ°æ¿éÿÈÕ·¢ÌûÖ®ÐÇ
ÈÕÆÚ:2015-11-27 06:20:00³ÌÐòÉè¼Æ°æ¿éÿÈÕ·¢ÌûÖ®ÐÇ
ÈÕÆÚ:2015-12-01 06:20:00ÿÈÕÂÛ̳·¢ÌùÖ®ÐÇ
ÈÕÆÚ:2015-12-01 06:20:0015-16Èü¼¾CBAÁªÈüÖ®·ðɽ
ÈÕÆÚ:2017-03-26 23:38:0315-16Èü¼¾CBAÁªÈüÖ®½­ËÕ
ÈÕÆÚ:2017-07-17 10:08:4415-16Èü¼¾CBAÁªÈüÖ®±±¾©
ÈÕÆÚ:2018-03-04 17:01:50
10Â¥ [±¨¸æ]
·¢±íÓÚ 2015-12-29 11:48 |Ö»¿´¸Ã×÷Õß
¸öÈ˸оõ²»´í֮ɨä
ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ×¢²á

±¾°æ»ý·Ö¹æÔò ·¢±í»Ø¸´

  

±±¾©Ê¢ÍØÓÅѶÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾. °æȨËùÓÐ ¾©ICP±¸16024965ºÅ-6 ±±¾©Êй«°²¾Öº£µí·Ö¾ÖÍø¼àÖÐÐı¸°¸±àºÅ£º11010802020122 niuxiaotong@pcpop.com 17352615567
δ³ÉÄê¾Ù±¨×¨Çø
Öйú»¥ÁªÍøЭ»á»áÔ±  ÁªÏµÎÒÃÇ£ºhuangweiwei@itpub.net
¸ÐлËùÓйØÐĺÍÖ§³Ö¹ýChinaUnixµÄÅóÓÑÃÇ ×ªÔر¾Õ¾ÄÚÈÝÇë×¢Ã÷Ô­×÷ÕßÃû¼°³ö´¦

Çå³ý Cookies - ChinaUnix - Archiver - WAP - TOP