Appearance
Типы данных
Какие есть типа данных?
Javascript/Typescript:
- Undefined (undefined)
- Boolean (true/false)
- Number (Infinity, NaN, 1) - 64 бита. Есть особенности хранения 0.1 + 0.2 != 0.3
- String ('string-example')
- BigInt (123n) - число произвольной длины
- Symbol (let foo = Symbol())
- Null (null)
- Object (все сложные структуры. Массивы, map, set, date)
Golang:
- bool (true/false)
- int - в зависимости от платформы либо int32, либо int64. 32битных - int32, 64битных - int64
- int8 (-128 до 127 - 1 байт памяти - 8 бит)
- int16 (-32768 до 32767 - 2 байта памяти - 16 бит)
- int32 (-2147483648 до 2147483647 - 4 байта - 32 бита)
- int64 (–9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 - 8 байт - 64 бита)
- uint - в зависимости от платформы либо uint32, либо uint64. u - unsigned.
- uint8 (0 до 255 - 1 байт - 8 бит)
- uint16 (0 до 65535 - 2 байта - 16 бит)
- uint32 (0 до 2 ** 32 - 4 байта - 32 бита)
- uint64 (0 до 2 ** 64 - 8 байт - 64 бита)
- uintptr - unsigned pointer. Для хранения указателя
- byte - uint8
- rune - int32 - символ Unicode
- float32 - число с плавающей точкой - точность 6 цифр
- float64 - число с плавающей точкой - точность 15 цифр
- complex64 - комплексные числа
- complex128 - комплексные числа
- string ("string-example")
Postgresql:
- boolean
- integer - 4 байта
- bigint - 8 байт
- numeric / decimal
- real - вещественные - 4 байта
- double precision - вещественные - 8 байт
- varchar / text / char(n)
Как проверить какого типа данные хранятся в переменной?
Javascript:
- typeof foo
Исключение typeof null - 'object'. Это баг языка
Golang:
- reflect.TypeOf
- switch foo.(type)
Postgresql:
- select pg_typeof(foo) from table;