Пробел Ruby: {: => 1} лучше, чем {: => 1}? [закрытый]

Рассмотрение чужого кода кажется действительно распространенным включать дополнительное пространство в изогнутых блоках фигурной скобки. Существует ли причина этого? Мне это, кажется, добавляет дополнительные нажатия клавиш для добавленного уродства. Особенно, когда вещи вкладываются:

lambda { (1..5).map { |i| { :a => { :b => i } } } }

По некоторым причинам это просто выглядит более кратким и когерентным, чтобы сделать:

lambda {(1..5).map {|i| {:a => {:b => i}}}}

Возможно, дополнительные пространства являются некоторым побочным эффектом текстового редактора или существует историческая причина или что-то? Я не видел обращенный в руководствах по стилю и если это похоже на 2 добавления отступа пространства, я хочу следовать конвенциям, но если нет никакого серьезного основания, я предполагаю, что буду просто продолжать делать вещи мой собственный путь. Который Вы предпочитаете, и почему?

9
задан Sarah Vessels 10 February 2010 в 18:04
поделиться

8 ответов

Большая часть кода Ruby, который я вижу (и, надеюсь, весь код, который я пишу), использует этот стиль:

{ :key => 'value' }

Это то, к чему я привык и усвоил.

Когда все сказано и сделано, этот единственный вопрос стиля не имеет первостепенного значения. Тем не менее, сообщество Ruby (как и другие) считает важным согласовать ваш стиль (а) с проектом, над которым вы работаете, и (б) с сообществом разработчиков кода в целом. Вот почему я рекомендую использовать лишние пробелы.

Кстати, это хорошее руководство по стилю Ruby: http://www.caliban.org/ruby/rubyguide.shtml#style

7
ответ дан 4 December 2019 в 13:47
поделиться

Я не программист на Ruby, но я обычно ставлю лишний пробел после скобок / скобок, если между ними есть что-то более длинное, например, более длинный оператор if или дополнительный расчет в качестве аргумента функции.

Я бы сказал - хотя я не программист на Ruby - делайте то, что хотите / как желает ваш работодатель (если вы не фрилансер / любитель).

0
ответ дан 4 December 2019 в 13:47
поделиться

Похоже, это просто вопрос стиля. Я думаю, что они уродливы, уберите лишние пробелы.

Редактировать: Я согласен с комментарием ниже, что простое утверждение, что это вопрос стиля, не дает права делать все, что вы хотите. Если кому-то еще придется читать или поддерживать код, то следование общему стилю - это просто хорошая практика кодирования. Поэтому я буду первым, кто поставит пробелы, если кто-то убедит меня, что большинство кода Ruby использует пробелы именно таким образом. Лично я все еще думаю, что это некрасиво, но это гораздо менее важно, чем то, что другие могут читать мой код.

3
ответ дан 4 December 2019 в 13:47
поделиться

Вот простое в использовании веб-приложение для создания карт изображений. Это избавит вас от необходимости иметь дело с дополнительными программами (DreamWeaver, PhotoShop, Gimp и т.д.).

http://www.image-mapper.com/

-121--3823573-

Любой из них является методом фильтрации, который говорит: «Примите любые предметы, удовлетворяющие следующим критериям». A = >... бизнес означает «Учитывая параметр a, вот метод» - как говорят другие, он используется для лямбда-выражений. Изменить: изменено значение «property» на «parameter»

-121--4859506-

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

lambda{ (1..5).map{ |i| {:a=>{:b=>i}} } }

Конечно, если вам трудно читать, у вас почти всегда есть возможность не использовать лямбду, если вы предпочитаете.

Если вы кодируете с группой других людей - или для конкретной цели показать свой код сообществу Ruby - вы также должны рассмотреть, что они найдут читаемым.

Но я не уверен, что меня сильно волнует, является ли мой пример выше «нормальным интервалом между рубинами».

0
ответ дан 4 December 2019 в 13:47
поделиться

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

{:a => "b"} #is less readable than
{ :a => "b" } #more readable.

Это частично связано с фигурными скобками, я редко вижу пробелы в начале хэшей в Ruby ([]).
Новый синтаксис хеширования, представленный в Ruby 1.9, вероятно, изменит это

{a: "b"} #same as {:a => "b"}
0
ответ дан 4 December 2019 в 13:47
поделиться

Я всегда считал, что наиболее читабельно включать дополнительный пробел внутри блоков фигурных скобок, но опускать последний пробел, если предшествующий символ является закрывающей скобкой. Используя ваш пример:

lambda { (1..5).map { |i| { :a => { :b => i }}}}
0
ответ дан 4 December 2019 в 13:47
поделиться

Вы можете использовать комбинацию. В месте, где я работал, у нас было несколько нечеткое правило стиля, которое гласило: «Используйте пробелы внутри скобок, кроме тех случаев, когда они являются внешними скобками конструкции». Это звучит сбивающе с толку, но часто помогает прийти к чему-то, что имеет приятный интуитивный визуальный смысл.

lambda {(1..5).map {|i| {:a => { :b => i }} }}

Мне нравится, как этот интервал выделяет внутренний хеш (возвращаемое значение), при этом он не кажется слишком раздутым, а завершающий }} помогает понять, что он заключен в два уровня вложенности.

3
ответ дан 4 December 2019 в 13:47
поделиться

Пример, который вы показываете, - дело стиля. Я думаю, вы уберете пробелы, если собираетесь поместить все в одну строку. Однако, если вы поместите

[1,2,3].slice (2)

в свой код, Ruby выдаст предупреждение

warning: не ставьте пробел перед скобками аргументов

Итак, я думаю, Ruby увлечен круглыми скобками, но не брекеты.

1
ответ дан 4 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: