Встроенные типы данных



Bool
Логический тип. Может принимать одно из двух значений:
и
{}. [По аналогии с алгеброй логики, в которой чаще используются {} логический ноль и логическая единица, а не истина/ложь {}.]

Int
Целочисленный тип (размерностью 32 или 64 разряда).
Для создания целого числа из строки пишите
Int(s)
.
Для создания целого числа из строки с заданным основанием системы счисления пишите
Int(s, radix' base)
.
Для создания целого числа из массива байт пишите
Int(bytes' b)
для little-endian и
Int(bytes_be' b)
для big-endian.
[Для обратной операции используйте метод
to_bytes()
.]


Int8
Int16
Int32
Int64 или Long
Знаковые целые.

Byte
UInt16
UInt32
UInt64 или ULong
Беззнаковые целые.

BigInt
Целочисленный тип на основе длинной арифметики.

Float
Вещественный тип (размерностью 32 или 64 разряда).

Float32 или SFloat
Float64

Char
Символ.
Создать символ с кодом 65 можно так:
Char(code' 65)
Создать символ из однозначного целого числа можно так:
Char(digit' i)
Создать символ из односимвольной строки можно так:
Char(string' s)
(Это отличается от
s[0]
тем, что в случае когда длина строки
s
больше 1, бросается исключение.)
Создать символ из односимвольного строкового литерала можно так:
Char("\0")

String
Строка. Может быть сконструирована из строковых литералов. Для создания строки из целого числа с заданным основанием системы счисления пишите
String(i, radix' base)
.
Примечание: в отличие от Python строки в 11l являются изменяемыми (также как в C++).

Tuple
Кортеж. Например, кортеж из двух элементов:
(1, 2)
. [Тип такого кортежа —
(Int, Int)
или
Tuple[Int, Int]
или
IVec2
.]

К элементам кортежей, состоящих из от 2-х до 4-х элементов одного арифметического типа, можно обращаться по
x
,
y
,
z
,
w
или
r
,
g
,
b
,
a
.
Арифметические операции (
+
,
-
,
*
,
/
) над кортежами выполняются покомпонентно {}.
Примечание 1: также как и в mypy, кортежи в 11l могут содержать элементы различных типов, но массивы (аналог списков в Python) могут содержать элементы только одного типа.
Примечание 2: в отличие от Python кортежи в 11l являются изменяемыми (также как в C++).

Кортеж с именованными элементами:
(name' ‘John’, age' 30)
. [Тип такого кортежа —
(String name, Int age)
или
Tuple[String name, Int age]
.]


Array
Массив. Например, массив из двух элементов:
[1, 2]
. [Тип такого массива —
[Int]
или
Array[Int]
.]


Dict
Словарь. Например, словарь из двух элементов:
[‘key1’ = 1, ‘key2’ = 2]
.
[Тип такого словаря —
[String = Int]
или
Dict[String, Int]
.]


DefaultDict
Словарь, не бросающий исключение при обращении к несуществующему элементу, а вставляющий новый элемент со значением по умолчанию в таком случае.
Например, словарь DefaultDict из двух элементов:
DefaultDict([‘key1’ = 1, ‘key2’ = 2])
.
[Тип такого словаря —
DefaultDict[String, Int]
.]


Set
Множество. Например, множество из двух элементов:
Set([1, 2])
. [Тип такого множества —
Set[Int]
.]


Deque
Двухсторонняя очередь. Например, очередь из двух элементов:
Deque([1, 2])
. [Тип такой очереди —
Deque[Int]
.]


File
Файл. Для открытия файла используйте конструктор:
File(name, encoding = ‘utf-8-sig’) открывает файл с именем
name
для чтения.
File(name, WRITE, encoding = ‘utf-8’) открывает файл с именем
name
для записи. {}
File(name, APPEND, encoding = ‘utf-8’) открывает файл с именем
name
для записи в конец файла.
Примечание 1: в 11l не нужно указывать тип файла (текстовый или двоичный) при открытии [мои мысли на тему режимов открытия файлов].
Примечание 2: только кодировки utf-8 и utf-8-sig [UTF-8 с меткой порядка байтов (BOM)] поддерживаются на данный момент.

[Документация по методам и членам встроенных типов доступна на данный момент только на английском.]