2014-10-24 4 views
2

Я читал о рубине программировании лучших практиков, и я нашел эту страницу: https://github.com/styleguide/rubyРубиновых хэш жесткого кодирования программирование лучшие практики

Внутри этого, раздел «Хэш» объясняет, что:

# bad 
user = { 
    login: "defunkt", 
    name: "Chris Wanstrath" 
} 

# bad 
user = { 
    login: "defunkt", 
    name: "Chris Wanstrath", 
    "followers-count" => 52390235 
} 

# good 
user = { 
    :login => "defunkt", 
    :name => "Chris Wanstrath", 
    "followers-count" => 52390235 
} 

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

+0

ответ на это в книге: «Используйте синтаксис хэш-хэша для литералов Хэша вместо стиля JSON, введенного в 1.9». В основном это связано с фактическим синтаксисом больше, чем с чем-либо еще. Colons (:) и хэш-ракеты (=>) являются предпочтительным способом написания рубина. Надеюсь, это поможет – Jax

+2

Похоже, что это руководство устарело. Вместо этого используйте https://github.com/bbatsov/ruby-style-guide#symbols-as. – pragma

+0

@ прагма, там много хорошего. Я читал его несколько раз, и каждый раз я имплантировал несколько хороших советов. На этот раз мне напомнили о доброте «Hash # fetch». –

ответ

1

Это просто руководство по стилю, которое GitHub использует для своей базы кода, не более того. Вероятно, они предпочитают это, потому что многие из их кодов были написаны до того, как был установлен Ruby 1.9, и они хотят сохранить согласованность.

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

0

Когда String ключевой хэш смешанный с Symbol ключевой хеш, он «лучше», чтобы сделать их похожими друг на друга.
P.S. Но я не согласен с этим.

В первом случае это действительно сложно сказать.

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