Числовые литералы¶
Ü поддерживает числовые литералы в различных форматах. Существуют два вида числовых литералов - целочисленные и с плавающей точкой.
Числовые литералы с плавающей точкой¶
Числовые литералы с плавающей точкой это десятичные числа, в записи которых присутствует дробная точка и/или экспонента.
У числовых литералов с плавающей точкой может быть указан суффикс типа.
Поддерживаемые суффиксы это 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".