• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby 基础知识2 - 区块 block

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文

1. block中的 yield 与遍历

5.times do |i|
    puts i
end

或者

def my_times(n)
    i = 0
    while n > i
      i += 1
      yield i
    end
  end

  my_times(5) { |num|
    puts "hello, #{num}xRuby"
  }

  # 得到結果
  # hello, 1xRuby
  # hello, 2xRuby
  # hello, 3xRuby
  # hello, 4xRuby
  # hello, 5xRuby

  

2. block 物件化

由于 block不能单独存在。可以借助 Proc.new

比如

greeting = Proc.new { puts "哈囉,世界" }   # 使用 Proc 類別可把 Block 物件化

或者

say_hello_to = Proc.new { |name| puts "你好,#{name}"}
say_hello_to.call("尼特羅會長")

调用

say_hello_to.call("尼特羅會長")    # 使用 call 方法
say_hello_to.("尼特羅會長")        # 使用小括號(注意,有多一個小數點)
say_hello_to["尼特羅會長"]         # 使用中括號
say_hello_to === "尼特羅會長"      # 使用三個等號
say_hello_to.yield "尼特羅會長"    # 使用 yield 方法

 

结束


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Ruby on rails初体验(三)发布时间:2022-07-14
下一篇:
Ruby文件操作发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap