gpt4 book ai didi

ruby - Procs的绑定(bind)

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

是否可以在另一个对象的上下文中执行 proc?

我知道通常你会执行 proc.call(foo),然后 block 应该定义一个参数。我想知道我是否可以让“self”绑定(bind)到 foo,这样就不需要 block 参数了。

proc = Proc.new { self.hello }

class Foo
def hello
puts "Hello!"
end
end

foo = Foo.new

# How can proc be executed within the context of foo
# such that it outputs the string "Hello"?

proc.call

最佳答案

foo.instance_eval &proc

instance_eval 可以采用 block 而不是字符串,& 运算符将 proc 变成 block 以用于方法调用。

关于ruby - Procs的绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/525324/

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