我有一个同事正在积极地试图说服我不要使用do..end而是使用花括号来定义Ruby中的多行块.
我坚定地只使用花括号作为短单线,并且做其他事情.但我想我会联系更大的社区来获得一些解决方案.
那是哪个,为什么?(一些应该代码的示例)
context do
setup { do_some_setup() }
should "do somthing" do
# some more code...
end
end
Run Code Online (Sandbox Code Playgroud)
要么
context {
setup { do_some_setup() }
should("do somthing") {
# some more code...
}
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,只看上面的问题就可以解答我的问题,但我想向更大的社区开放.
新的红宝石,穿上你的新手套.
以下两个片段之间是否有任何区别(模糊或实用)?
my_array = [:uno, :dos, :tres]
my_array.each { |item|
puts item
}
my_array = [:uno, :dos, :tres]
my_array.each do |item|
puts item
end
Run Code Online (Sandbox Code Playgroud)
我意识到括号语法允许你将块放在一行上
my_array.each { |item| puts item }
Run Code Online (Sandbox Code Playgroud)
但除此之外是否有任何令人信服的理由使用一种语法而不是另一种语法?
为什么这个地图表达式会产生不同的结果,具体取决于我是使用大括号还是执行/结束?
a = [1,2,3,4,5]
p a.map { |n|
n*2
}
#=> [2,4,6,8,10]
p a.map do |n|
n*2
end
#=> [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)