2013-03-20 77 views
1

在Ruby方法中编写括号的“可接受”或“正确”方式是什么?在Ruby方法中编写括号的正确方法?

喜欢:

puts doc.instance_of?(self.class.superclass.class) 

或:

puts doc.instance_of? (self.class.superclass.class) 

或:

puts doc.instance_of? (self.class.superclass.class) 

或:

puts doc.instance_of?(self.class.superclass.class) 

回答

3

2的d 3是错误的(参见@ muistooshort的评论)。

在1到4之间,只需选择一个风格指南并坚持下去。一致性是最重要的事情。我已经满意这个其中一个建议1,并亲自发现它更干净外观:

https://github.com/styleguide/ruby

这里是2分断的与带有一个可选的第二个参数的方法的例子:

def f(x, y=1) x + y end 

f(1,2) # 3 

f(1) # 2 

f (1, 2) # syntax error 

f (1), 2 # 3! 
+1

嗯,我会说1是不地道要么,你链接的指南说,这也: “后(不计空格” 它看起来可怕 – tokland 2013-03-20 23:32:17

+2

其实,'F(X,Y)'ISN。甚至是有效的;如果方法后有空格,那么括号用于分组如果你打算在方法调用中使用圆括号,他们**必须**遵循方法名称而不在它们之间或圆括号意味着别的什么,所以1和4是好的,2和3通常是无意义的。 – 2013-03-20 23:32:22

-2

您甚至可以在Ruby中省略括号,就像您在所有示例中省略了puts一样。这是“常用的方式”,除非您有复杂的表达式或优先级问题。

puts doc.instance_of? self.class.superclass.class 
+1

省略括号而没有优先级的知识,以及Ruby解析的方式是问问题Stack Overflow存在许多问题,这些问题是人们放弃他们使用括号并遇到方法和块的问题。 – 2013-03-21 04:42:32