Почему долго написано с L - PullRequest
0 голосов
/ 02 марта 2019

Если я хочу сохранить длинную переменную, зачем мне писать L или l в конце значения?

Например:

9_223_372
long v = 9_223_372L;

Но если я сохраню это:

long v = 9_223_372;

, это все еще длинная переменная.Так почему я должен писать L или l?

1 Ответ

0 голосов
/ 02 марта 2019

int литерал

Если вы не напишите его, Java создаст его как int и оттуда приведёт к long:

long number = 10;
// Is the same as
long number = (long) 10;
// i.e.
int asInt = 10;
long number = (long) asInt;

Это работает так долготак как число, которое вы пишете, является int и потерпит неудачу, если его нет, например, очень большое число:

// Fails, "integer number too large"
long number = 10_000_000_000_000_000;

С L (или l) вы сообщаете Java, что этот литералlong, а не int во-первых.Что также избавляет от ненужного преобразования:

long number = 10_000_000_000_000_000L;

Примечание

То же самое работает и для плавающих чисел, когда вы хотите float вместо double,Вы добавляете F (или f).Технически, вы также можете добавить D или d для double, но литерал с плавающим числом уже double по умолчанию, поэтому это не нужно:

float asFloat = 0.5F;
double asDouble = 0.5D;
double alreadyDoubleByDefault = 0.5;

КстатиПожалуйста, не используйте l (маленький L), его легко спутать с 1 (один).

...