gpt4 book ai didi

ruby-on-rails - Ruby 中的 block 是否被过度使用?

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

我开始学习 Ruby,不出所料,最难让我头疼的事情就是 block 。

看看它们的一些使用示例,其中一些看起来过于复杂,几乎就像有人在试图混淆代码。

例如,这里有一些来自 Rails 的迁移代码:

create_table :posts do |t|
t.string :name
t.string :title
t.text :content
t.timestamps
end

假设 t 指的是创建的表,这不就是一回事吗?:(添加括号以使其更清楚)

t = create_table(:posts)
t.string(:name)
t.string(:title)
t.text(:content)
t.timestamps()

第一个版本如何“更好”或更清晰?

最佳答案

翻转你的问题:第一个版本怎么更复杂了?

简短回答:一般来说,不会。 block 用于特定目的。

IMO block 更具交流性,因为:

  • block 中的所有内容都是相关的
  • 范围在语言级别强制执行( block 后不再有 t)

block 还可以在方法的yield 之前或之后执行代码。例如,生成文件的 block 可以关闭文件。

那些添加的括号并没有使任何事情变得更清楚:Ruby(和类似语言)的优点之一是可选的括号使事情看起来更具声明性,表定义就是这样。

关于ruby-on-rails - Ruby 中的 block 是否被过度使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918889/

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