gpt4 book ai didi

圆点括号调用语法

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:42 25 4
gpt4 key购买 nike

我正在阅读 jbuilder's README并看到了这些代码:

class Person
# ... Class Definition ... #
def to_builder
Jbuilder.new do |person|
person.(self, :name, :age)
end
end
end

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

class Thing
attr_accessor :name, :age

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

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

那么为什么在jbuilder调用中会有一个self呢?

最佳答案

self 这里只是传递给Jbuilder的call方法的一个参数。

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, :name, :age)
end
end

Bar.new.to_thing

关于圆点括号调用语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26580516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com