Числовые литералы¶
Ü поддерживает числовые литералы в различных форматах. Существуют два вида числовых литералов - целочисленные и с плавающей точкой.
Числовые литералы с плавающей точкой¶
Числовые литералы с плавающей точкой это десятичные числа, в записи которых присутствует дробная точка и/или экспонента.
У числовых литералов с плавающей точкой может быть указан суффикс типа.
Поддерживаемые суффиксы это f и f32 для типа f32, f64 для типа f64.
Если суффикс числового литерала с плавающей точкой не указан, считается, что он имеет тип f64.
Примеры числовых литералов с плавающей точкой:
var f64 a = 0.0; // Имеется дробная точка.
var f64 b = 1234.56; // Имеются несколько целых и дробных разрядов.
var f32 c = 87.33f; // Имеется суффикс "f".
var f32 d = 0.000253f; // Присутствуют начальные нули в дробной части.
var f64 e = 67e7; // Имеется экспонента.
var f64 f = 3.5e-14; // Имеются дробная точка и негативная экспонента.
var f32 g = 12323.7f32; // Присутствует суффикс "f32".
var f64 h = 908754.24556f64; // Присутствует суффикс "f64".
Целые числовые литералы¶
Десятичные числа без дробной точки и экспоненты считаются целочисленными литералами.
Кроме того поддерживаются недесятичные числовые литералы:
- основание 2. Литерал начинается с префикса - 0b. Доступны цифры 0-1.
- основание 8. Литерал начинается с префикса - 0o. Доступны цифры 0-7.
- основание 16. Литерал начинается с префикса - 0x. Доступны цифры 0-9 и a-f либо A-F.
Недесятичные числовые литералы всегда считаются целыми, дробная точка и экспонента не могут быть указаны для них, переполнение считается ошибкой.
Целочисленные литералы со значением больше 18446744073709551615 (264 - 1) не поддерживаются.
У целочисленных литералов может быть указан суффикс типа.
Указание суффикса равного имени одного из встроенных целочисленных типов означает, что этот числовой литерал имеет этот тип.
Кроме того существуют суффиксы u для типа u32 и s для типа size_type.
Если суффикс целочисленного литерала не указан, считается, что он имеет тип i32 (если литерал в него умещается), i64 или i128.
Примеры целочисленных литералов:
var i32 a = 7; // Десятичное число без суффикса - имеет тип "i32".
var i32 b = 644; // Несколько десятичных разрядов.
var u32 c = 0u; // Суффикс "u" для "u32".
var u64 d = 0b1100101101101110110111011100u64; // Двоичное число с суффиксом "u64".
var i8 f = 0x3ei8; // Шестнадцатеричное число с суффиксом "u8".
var u16 g = 0o74u16; // Восьмеричное число с суффиксом "u16".
var i64 h = 0x868E5B7F; // Шестнадцатеричное число, слишком большое, чтобы вместиться в "i32", поэтому оно имеет тип "i64".
var i128 i = 17446748073702551613; // Десятичное число, слишком большое, чтобы вместиться в "i64", поэтому оно имеет тип "i128".
var size_type j = 1234s; // Десятичное число с суффиксом "s".
var i32 k = 0x67ab4e; // Шестнадцатеричное число без суффикса - имеет тип "i32".
