2013-05-26 2 views
0

Какие правильные ситуации использовать %w:Надлежащая% вес использования нотации

percent_notation = %w(first second third) 
explicit = ["first", "second", "third"] 

для создания массивов? С массивами размером 501 разница в времени создания составляет ок. 0,04 миллисекунды. Является ли это существенной разницей, которая заставит нас использовать явные над процентной нотации?

Помимо того, что быстрее писать, существуют ли какие-либо причины для использования одного или другого? Правильный рубиновый стиль требует одной версии над другой?

ответ

3

Вы передумали проблему.

Я использую %w, когда это проще, чем писать регулярное определение массива или более визуально различаться.

Это выбор программиста и часто сводится к вопросу: что проще в обслуживании?

При определении отдельных слов он делает гораздо больше смысла использовать %w:

ary = %w[a b c foo bar] 

Чем это делает использование:

ary = ['a', 'b', 'c', 'foo', 'bar'] 

Однако, если вы встроили пространства вы должны поддерживать его становится более понятным для использования определения нормального массива:

ary = ['a b c', 'foo bar'] 

Co mpared к:

ary = %w[a\ b\ c foo\ bar] 

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

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

+0

Это во многом то, что я понял. Я просто сидел сегодня и начал думать об этом. Благодарю. –

0

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

+3

Я не думаю, что буквальное обозначение труднее читать, на самом деле наоборот. И неужели это так плохо для разработчиков, чтобы изучить синтаксис языка, который они используют? –

+0

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