Количество пробелов Java conventions

190
09 июня 2022, 17:40

Мне не понятен следующий пункт Java conventions:
"Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces (not 4)."

Что переводится как:
"В качестве единицы отступов следует использовать четыре пробела. Точная конструкция отступа (пробелы или символы табуляции) не указана. Табуляция должна быть установлена ровно каждые 8 пробелов (а не 4)."

Мне не понятно, так 4 использовать пробела или 8? Или в каких-то случаях 4, а в каких-то 8?

Answer 1

На самом деле эти три предложения мало связаны между собой и все о разном.

  1. Four spaces should be used as the unit of indentation - здесь речь о единице измерения табуляции, а не о том, сколько в отступе должно быть пробелов. Так же как единицей длины является метр, но это не означает, что всё на свете что имеет длину, равно одному метру. Может быть и 2, и 4,5 и 0,345.

  2. The exact construction of the indentation (spaces vs. tabs) is unspecified - здесь речь о том, что не регламентируется, как делать отступы - табами или пробелами.

  3. Tabs must be set exactly every 8 spaces (not 4) - это просто соотношение таба и количества пробелов. Как в километре 1000 метров (или, например, в футе 12 дюймов), так и в табе 8 пробелов (или две единицы табуляции).

Традиционно используется 4 пробела, но в некоторых случаях 8 (в документе, откуда этот текст, есть примеры). Но никто не запрещает вам в личных проектах использовать 2 пробела (0.5 единицы), 3 (3/4 единицы) или 7 (1 3/4 единицы). На работе скорее всего запрещают стандарты.

READ ALSO
Spring создание компонентов

Spring создание компонентов

слышал что в спринге создание классов помеченных @Component через ключевое слово new является плохой практикой, но так и не смог найти объяснения,...

248
Ошибка в base64 (Last unit does not have enough valid bits)

Ошибка в base64 (Last unit does not have enough valid bits)

Делаю не большую библиотеку RSA для себя на джавеУ меня есть 2 метода "byteToString" и "stringToByte", это нужно что-бы передать байты в строки

266
Ошибка FOREIGN KEY constraint failed при использовании Room

Ошибка FOREIGN KEY constraint failed при использовании Room

Не могу понять нюанс работы с RoomДобавление в базу данных связанных через внешний ключ записей получается только так:

237
Java Spring ошибка при redirect

Java Spring ошибка при redirect

Web приложение на Spring WebОбработчик, по мимо всего прочего, формирует pdf документ, и передаёт на скачивание

315