gpt4 book ai didi

ruby - 使用 block 初始化有什么好处吗?

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

有没有理由像这样使用 block 初始化:

x = Observer.new do
add_event(foo)
some_other_instance_method_on_observer
self.some_attribute = something
end

而不是像这样在实例变量上使用点运算符来初始化属性:

x = Observer.new
x.add_event(foo)
x.some_other_instance_method_on_observer
x.some_attribute = something

最佳答案

这里的唯一原因是代码更简洁(您不必在方法调用前添加实例名称)。通过使用一般的 block ,您可以编写非常整洁、简洁和可读的代码。有时您可以为您的代码消费者节省大量的输入甚至代码逻辑。这是一个传统案例!

file = File.open("some_file.txt","w")
file << "more code"
file.close

将它与这个不错的 block 替代方案进行比较:

File.open("some_file.txt","w") { |file| file << "adding new stuff" }

它使用户免于必须自己打开和关闭(我个人一直忘记这个)文件的麻烦。相反,这让他专注于自己想要的东西。

尝试在这种情况下 + 当你想编写好的 DSL 时投入区 block 。

关于ruby - 使用 block 初始化有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1423934/

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