Каков основной стиль для заключения в скобки вызовов функций Ruby? - PullRequest
5 голосов
/ 17 сентября 2011

Допустим, у меня есть func_a и func_b, которые оба принимают один аргумент, и я хочу передать результат func_b в func_a.

Какой самый распространенный способ заключить это в скобки?

  1. func_a func_b input
  2. func_a func_b(input)
  3. func_a(func_b input)
  4. func_a(func_b(input))

Ответы [ 2 ]

2 голосов
/ 18 сентября 2011

Вы должны отсканировать источник, чтобы найти «наиболее распространенное».

Я пытаюсь написать, что имеет смысл в данных обстоятельствах, но почти всегда будет использовать либо:

func_a func_b(arg)
func_a(func_b(arg))

Если функции называются вещами, которые «звучат как» предложение или фраза, то я отброшу столько паренов, сколько смогу.

func_a func_b arg

Другими словами, если бы это звучало как-то, я быскажи вслух, я напишу это так, как я бы сказал - предложение или фразу.

Если это не похоже на то, что я бы сказал в реальной жизни, нужны паренсы, чтобы улучшить ясность,и т.д., тогда я напишу это, как будто я пишу код, потому что он звучит / выглядит как код.

2 голосов
/ 18 сентября 2011

Я не могу дать вам самый распространенный способ , но мое личное мнение.

Я бы отказался от первой версии func_a func_b input.Это слишком запутанно, вы не видите, является ли input параметром func_b, или если он является вторым параметром func_a.

Я предпочитаю четвертую версию, она показывает явно, каков параметр для чего (и вывидите, что такое имя метода и что такое переменная).Но я бы добавил пробелы до и после скобок:

func_a( func_b( input ))

или

func_a( func_b(input) )
...