您是否在Ruby中放入括号?[关闭]


Answers:


95

Ruby风格元素

Ruby允许您省略括号,通常抵制这种诱惑。

括号使代码更易于遵循。常规的Ruby风格是使用它们,但以下情况除外:

  • 总是省略空括号
  • 可以将括号放在ERb定界符包围的单个命令中-ERb标记可确保代码仍然可读
  • 可以编写一个包含单个命令和单个简单参数的行,而无需括号。就个人而言,我发现我做的这件事越来越少了,但仍然可读性很强。我倾向于不喜欢常规ruby代码中具有多个参数且没有括号的一行。
  • 许多基于Ruby的领域特定语言(例如Rake)不使用括号来保留其语句的自然语言风格。

27

我用原谅的话来帮助未来的我...谁的脑细胞可能比现在的我少:-)

没有什么比查看您两年前编写的代码并误解它更糟糕的了,以便您在修改代码时破坏某些内容。

如果parens可以在未来几分钟(或几个小时)内为我节省未来,那么我将根据需要输入尽可能多的内容,以使声明清晰明了。


2
+1“我使用原谅作为评论来帮助未来的我...可能比现在的我脑细胞少的人:-)”的确如此,这正是我这样做的原因。对于跟随我的必须使用我的代码的任何人,也应该宽恕。简而言之,这是维护工作。
锡人

9

我在做类似DSL的东西时,例如t.column或has_many in rails,我将它们排除在外。在其余时间中,通常会变得清晰,甚至可能是分裂的。


8

我想我都会做,但是如果可以增加可读性并避免看起来模棱两可的语句,我肯定会保留它们。


8

如果您的意思是函数调用,我总是放在括号内,因为它总是更容易阅读。如果您是在条件中(如果有的话)表示,则仅在必要时加上括号。


2
我同意。例如,在php中,我可以通过$前缀快速发现一个var。在javascript中,可以通过括号()来协调函数。在Ruby中,var或func(不带括号)之间的区别并不总是很容易看出来。

7

如果可能的话,我尝试将它们排除在外。我认为这使代码更易于阅读(通常而言)。


4

通常以可读性更高的那个为准。

但是在将函数调用嵌套在其他参数的内部时,我总是使用括号


2

在进行诸如assert_equal之类的断言时,我倾向于忽略它们。也许是使它像特定领域的语言一样。


1

如果您已经进行了很长时间的编程,则可能会有一个“痒”来添加括号,并且在许多情况下,这样做有充分的理由。

虽然我认为该代码更容易理解,但我还没有遇到任何问题-如果您需要括号,则必须先了解它,然后再运行调试脚本。


4
“我的老师告诉我这是不可避免的”。是的,并且可能很难调试。我建议使用它们以避免模棱两可的参数分配。
锡人

IMO被贬低为“更容易理解”,这是一个糟糕的理由,在函数参数周围省略了括号。
Marcello Romani 2015年

2
在与非贵族人群交谈时,前几天if owner.is_a? thing //worked fine if owner.is_a? thing && x > 1 //not fine 我只遇到了红宝石问题,现在我只学习了几周,在我工作的地方使用了尽可能少的字符,如果您来自任何其他语言,那是一种学习知道何时传递隐式哈希,符号数组,传递给函数符号的曲线...我不是迷。
洛克人

@MegaManif owner.is_a? thing and x > 1
anna328p

1
@DmitryKudriavtsevand不具有相同的运算符优先级&&
洛克人
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.