加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby:接受块的类?

发布时间:2020-12-17 03:31:10 所属栏目:百科 来源:网络整理
导读:我注意到 Ruby中的CSV类有一些快捷方式接口(见 http://ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html): CSV { |csv_out| csv_out %w{my data here} } # to $stdoutCSV(csv = "") { |csv_str| csv_str %w{my data here} } # to a StringCSV($stderr)
我注意到 Ruby中的CSV类有一些快捷方式接口(见 http://ruby-doc.org/stdlib-1.9.3/libdoc/csv/rdoc/CSV.html):

CSV             { |csv_out| csv_out << %w{my data here} }  # to $stdout
CSV(csv = "")   { |csv_str| csv_str << %w{my data here} }  # to a String
CSV($stderr)    { |csv_err| csv_err << %w{my data here} }  # to $stderr
CSV($stdin)     { |csv_in|  csv_in.each { |row| p row } }  # from $stdin

有没有办法为我自己的课程做到这一点?我正在实施一个DSL,这将使代码更清洁.

解决方法

这不是一个阶级.它是在Object上定义的方法(尽管还有一个名为CSV的类).您链接的文档具有误导性. This解释得更好.

您不能像使用模块那样执行此操作,但您可以定义采用块的方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读