Tag: closures

我如何使用PHP 5.3 Closures,比如我们在Ruby中使用Blocks

我如何使用PHP 5.3 Closures,比如我们在Ruby中使用Blocks。 我从来没有在Ruby中使用’for’循环,因为使用带有’each”read_all”inject’方法的块。 我怎样才能使用像Ruby块这样的PHP 5.3闭包,并说再见’for’Loops 🙂 就像在{和}之间是一个闭包(或块或匿名函数) fruit = %w[apple banana orange] fruit.each { |f| print “#{f}, ” } 我用PHP这样做, $fruit = array(‘apple’, ‘banana’, ‘orange’); foreach ($fruit as $f) { print “$f, “; } 有没有办法使用PHP闭包的Ruby方式来实现这一点,因为PHP 5.3支持它。

Hash.each和lambdas之间的arity不一致

我从Josh Susser那里得到了以下例子 def strip_accents params thunk = lambda do |key,value| case value when String then value.remove_accents! when Hash then value.each(&thunk) end end params.each(&thunk) end 当我把它放在rails控制台(irb)中,并用哈希调用它时,我得到以下内容: ruby-1.9.2-p136 :044 > `ruby –version` => “ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux]\n” ruby-1.9.2-p136 :045 > strip_accents({:packs=>{:qty=>1}}) ArgumentError: wrong number of arguments (1 for 2) from (irb):32:in `block in strip_accents’ from […]