Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Gowin
@blabber
Member
NO. 8588 / 2013-08-09

广州
2 Topics / 7 Replies
1 Followers
0 Following
1 Favorites
No GitHub.
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • Mongoid 环境下给局部模板传参数的写法问题 at March 15, 2014

    确实是,embedded document 里面用 formfor(img) 没有意义。改成 has_many,再把 cargo_id 加到 img 里面就 ok 了。

  • Mongoid 环境下给局部模板传参数的写法问题 at March 14, 2014

    @Rei @huacnlee @ashchan @hisea 几位大大们,不知能否解惑?谢谢!

  • 关于 Proc 和 lambda 的一点疑惑 at January 20, 2014

    @AlphaLiu 谢谢!倒是有这本书,还没有来得及看。谢谢你!

  • 关于 Proc 和 lambda 的一点疑惑 at January 20, 2014

    哦,我明白了。里面也有 return,只不过关注了后面的 return。 谢谢两位啦!

  • 关于 Proc 和 lambda 的一点疑惑 at January 20, 2014

    谢谢! @ytwman @ashchan 但是在第一段代码里面,return 也不是在 proc 或 lambda 的里面啊?

  • 关于 Proc 和 lambda 的一点疑惑 at January 20, 2014

    谢谢 @ashchan 之前 @ghjcumt2008 做了个总结,我觉得挺全面。翻出来,供大家参考!

    总结 1.block 和 Proc 都是代码块,Proc 可以复用,block 不可以复用 2.block 和 lambda 不是类,Proc 是类,所以 block 和 lambda 是小写,Proc 是大写 3.lambda 是匿名函数 4.lambda 会对参数个数验证,Proc 不会验证 5.lambda 会执行 return,Proc 遇到 return 会中断

  • 关于 Proc 和 lambda 的一点疑惑 at January 20, 2014

    根据 @ghjcumt2008 9 个月前的一个总结说“lambda 会执行 return,Proc 遇到 return 会中断”,我修改代码如下。

    def call_block(&block)
      block.call(1)
      return "1"
      block.call(2)
      return "2"
      block.call(3)
      return "3"
    end
    
    proc_1 = Proc.new { |i| puts "#{i}: Blocks are cool!" }
    proc_2 = lambda { |i| puts "#{i}: Blocks are cool!" }
    
    call_block(&proc_1)
    call_block(&proc_2)
    
    输出
    1: Blocks are cool!
    1: Blocks are cool!
    

    从输出看,不管是 proc 还是 lambda,在执行完 block.call(1) 后,都进行了中断。

关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English