Делая отступ с пробелами, вкладками, и сколько пробелов или [закрытой] вкладки width

13
задан Jesse Armand 26 July 2010 в 14:49
поделиться

6 ответов

Вы всегда должны использовать стиль кодирования, который уже используется в проекте, если вы изменяете существующий проект.

При этом, если вы можете выбрать свой собственный стиль кодирования для нового проекта, я предлагаю вам использовать табуляцию для отступа кода, а не пробелы - вот почему. Используя пробелы, вы заставляете всех других разработчиков, работающих над проектом, соответствовать вашим предпочтениям в отношении отступов, будь то 2 пробела, 4 или 8 (или что-то еще). Но с помощью вкладок каждый разработчик может просматривать код в соответствии со своими предпочтениями. Вы должны использовать пробелы, а не табуляции для форматирования текста (чтобы выровнять имена переменных по одному в строке или выровнять многострочные комментарии), потому что это будет работать с любой настройкой ширины табуляции. Однако, когда вы делаете отступ в коде, используйте табуляцию, а не пробелы. Короче говоря, используйте табуляцию для отступов, потому что использование пробелов - это грубость.

33
ответ дан 1 December 2019 в 17:16
поделиться

Существуют разные языки программирования с очень разным синтаксисом. Синтаксис имеет решающее значение при выборе стиля кодирования. В частности, размер табуляции (количество пробелов), который вы выберете, будет зависеть от того, сколько уровней вам нужно. В HTML, например, есть много уровней, и там нет смысла иметь большой размер табуляции, даже нет смысла использовать табуляции ... вы просто используете пробелы.Еще один очень важный аспект - это IDE, которую вы используете. В некоторых IDE вам предлагается использовать вкладки (в Visual Studio у вас есть удобная возможность добавлять / удалять вкладки более чем в одну строку (TAB для добавления, SHIFT + TAB для удаления) и так далее. Проекты имеют разные размеры отступа, потому что люди используют разные настройки отступа (даже в одном и том же коде), или потому, что они используют разные редакторы, или потому, что проект включает код из других проектов, или даже просто потому, что у людей разные предпочтения или даже мониторы разных размеров. Я работаю в Visual Studio C ++ и VB.NET, отступ основан на табуляции (3 строки), а табуляции не вставляют пробелы.

2
ответ дан 1 December 2019 в 17:16
поделиться
  • пробелы, потому что они везде одинаковы.
  • ширина отступа зависит от контекста. побеги вмятины - это плохо. как правило, языки, в которых невозможно легко сбросить отступ до разумного уровня с помощью именованных элементов абстракции (функций или методов), нуждаются в узком отступе.
  • да, см. Предыдущий пункт

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

typedef __LA_SSIZE_T archive_write_callback(struct archive *,
                                            void *_client_data,
                                            const void *_buffer,
                                            size_t _length);

, если бы это было создано с шириной табуляции 2, это выглядело бы так с tabwidth = 4:

typedef __LA_SSIZE_T archive_write_callback(struct archive *,
                                                                                        void *_client_data,
                                                                                        const void *_buffer,
                                                                                        size_t _length);

наоборот, если бы оно было создано с tabwidth = 8 и отображалось с tabwidth = 4, результат был бы

typedef __LA_SSIZE_T archive_write_callback(struct archive *,
                        void *_client_data,
                        const void *_buffer,
                        size_t _length);

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

( другой ответ представляет тот же аргумент.)

давно назревшая редакция:

Я полностью согласен с первым предложением принятого ответа, которым является

Вы всегда должны используйте стиль кодирования, который уже используется в проекте, если вы изменяете существующий проект.

остальная часть этого ответа, извините, чушь, и я попытался объяснить почему выше.

вопрос о стиле отступов должен возникать только в самом начале любого проекта, когда он решен и готов. Я действительно считаю, что пробелы лучше табуляции, и имею (опять же, я верю) рациональные аргументы в поддержку моей позиции и т. д., но я не собираюсь начинать обсуждение этой темы, потому что они бесполезно: большинство программистов, которых я встречал, поддерживают свои предпочтения иррациональными аргументами, а остальные остановились на стиле, который лучше всего работает с их инструментами (например, я: «пробелы, потому что они отображают одно и то же везде» ), который я не имеют никакого влияния в целом.

анекдот: однажды я работал над проектом, в котором меняли символы новой строки с \ r \ n на \ n , и это оказалось занозой в заднице каждый раз, когда нам нужно было пройти ревизию в svn blame . s / newlines / indentation / , и у вас есть хороший аргумент против массовых изменений отступов в работающем проекте.

28
ответ дан 1 December 2019 в 17:16
поделиться

В зависимости от вашей IDE и вашей опции "tab вставляет пробелы", это хорошее сокращение по сравнению с использованием пробела. Например, при 3 уровнях отступа с 3 пробелами на табуляцию вы нажимаете клавишу Tab 3 раза, а не пробел 9 раз. Чистый эффект тот же - вы вставили 9 пробелов - но с 1/3 количества нажатий.

1
ответ дан 1 December 2019 в 17:16
поделиться

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

0
ответ дан 1 December 2019 в 17:16
поделиться
  • Я просто использую настройки по умолчанию редактора, в котором я сейчас работаю, но если у меня есть выбор, я использую вкладки, потому что это означает, что нужно управлять менее невидимыми символами. У меня есть один редактор, который полностью управляет отступами для меня (REALbasic), другой редактор, который управляет отступами для меня, позволяет использовать пробелы в качестве префикса, но форматирование становится неудобным, если я оставляю их в (Applescript), и есть Xcode.

  • Я вижу на 4 пробела больше, чем другое число для отступов по пробелам, поэтому я использую это, если мне нужно.

  • Я обнаружил, что в каждом сообществе более или менее есть стандарт, который был помещен в пример кода, поэтому я просто использую его, в противном случае - табуляцию, а затем 4 пробела. Простой.

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

2
ответ дан 1 December 2019 в 17:16
поделиться
Другие вопросы по тегам:

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