2013-03-20 3 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

+2

На самом деле, 'е (х, у)' ISN.. 't даже действительный, если после метода есть пробел, тогда для группировки используются скобки. Если вы собираетесь использовать круглые скобки в вызове метода, то они должны ** следовать имени метода без какого-либо промежутка между ними или в скобках есть что-то еще. Итак, 1 и 4 являются точными, 2 и 3, как правило, нонсенс. –

-2

Вы даже можете опустить круглые скобки в Ruby, так же, как вы опустили их для puts во всех ваших примерах. Это «общий путь», если у вас нет сложных выражений или проблем с приоритетом.

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

Опуская скобки без хорошего знания приоритета и того, как анализы Ruby задают проблемы. У переполнения стека много вопросов, которые являются результатом отказа людей их использование круглых скобок и проблемы с методами и блоками. –

Смежные вопросы