Ruby圆括号调用语法

前端之家收集整理的这篇文章主要介绍了Ruby圆括号调用语法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读 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
原文链接:https://www.f2er.com/ruby/274176.html

猜你在找的Ruby相关文章