我最近开始使用Ruby,所以很新。我目前的目标是使用一个名为retort的ruby模块,我的问题是我不理解配置方法,如下所示:
def configure
config = Config.new
yield config
@@service = XMLRPC::Client.new2(config.url)
end
Config类很简单,看起来像:
class Config
attr_accessor :url
end
我试图创建一个小例子,以便了解它应该如何工作:
class TestClass
def test_method
config = String.new
yield config
p config
end
end
d = TestClass.new
d.test_method { 'test string' }
当然它不会返回测试字符串'但是一个空字符串。
感谢您的帮助:)
答案 0 :(得分:2)
你能更清楚一下你的困惑吗?这段代码对你有意义吗?
class TestClass
def test_method
config = yield
p config
end
end
d.test_method { "test string" }
yield
语句调用该块。该块返回一个字符串,该字符串在config
中分配给test_method
变量,然后打印。这会让它更清楚吗?
在代码中,行yield config
在传入刚刚实例化的Config
对象时调用块。例如:
def foo
s = "a string"
yield s
p "In foo printing " + s
end
foo { |x| p "In block printing " + x }