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

Ruby圆括号调用语法

发布时间:2020-12-16 20:49:54 所属栏目:百科 来源:网络整理
导读:我正在阅读 jbuilder’s README并看到这些代码: class Person # ... Class Definition ... # def to_builder Jbuilder.new do |person| person.(self,:name,:age) end endend 我试图自己复制它,它要求一个调用方法,所以: class Thing attr_accessor :name,
我正在阅读 jbuilder’s README并看到这些代码:
class Person
  # ... Class Definition ... #
  def to_builder
    Jbuilder.new do |person|
      person.(self,:name,:age)
    end
  end
end

我试图自己复制它,它要求一个调用方法,所以:

class Thing
   attr_accessor :name,:age

   def call(*args)
     puts args.inspect
   end
end

Thing.new.(:name,:age) # => [:name,:age]

那么为什么jbuilder中会出现一个自我?

解决方法

self here只是传递给Jbuilder调用方法的参数.

Jbuilder需要person的实例(代码中为self)和属性名称(:name和:age代码)来生成json数据.

例:

class Thing
   attr_accessor :name,:age

   def call(*args)
     puts args.inspect
   end
end

class Bar
  def to_thing
    Thing.new.(self,:age)
  end
end

Bar.new.to_thing

(编辑:李大同)

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

    推荐文章
      热点阅读