Во многих языках на основе C вроде Java есть примитивные типы данных, которые занимают определенное количество байтов. К примеру, в Java 32-битное примитивное число — это int
. Существует также объектная версия int
, известная как Integer
. Может возникнуть вопрос, зачем нужны два типа, если хранят они один и тот же числовой тип?
Примитивы требуют меньше памяти. Это означает, что они лучше по производительности, но им все-таки не хватает некоторых функций от Integer
. Хорошая новость — в Kotlin вам не нужно беспокоиться о том, использовать примитивный или объектный тип. Kotlin делает все сам, поэтому вам нужно использовать обычный Int
.
Вы использовали Int
для целых чисел, которые представлены через 32 бита. В Kotlin есть много числовых типов, для хранения которых нужно различное количество памяти. К примеру, для целых чисел можно использовать Byte
, Short
и Long
. Для этих типов нужно 1, 2 и 8 байтов соответственно. Каждый из данных типов использует один бит для представления знака.
Далее дается обзор различных типов целых чисел и размер, нужной для них памяти, в байтах. В большинстве случаев используется Int
. Все эти типы становятся полезными, если ваш код взаимодействует с другой программой, коротая использует один из этих более точных размеров, или если вам нужно оптимизировать размер хранилища.
Тип | Минимальное значение | Максимальное значение | Память |
Byte | -128 | 127 | 1 |
Short | -32768 | 32767 | 2 |
Int | -2147483648 | 2147483647 | 4 |
Long | -9223372036854775807 | 9223372036854775806 | 8 |
Для дробных чисел мы использовали тип Double
. В Kotlin также есть тип Float
, у которого меньший диапазон точности, чем у Double
, и которому нужно в два раза меньше памяти. Современные программы оптимизированы под Double
, поэтому лучше использовать его.
Тип | Минимальное значение | Максимальное значение | Точность | Память |
Float | -3.4028235E+38 | 3.4028235E+38 | 6 цифр | 1 |
Double | -1.797693E+308 | 1.797693E+308 | 15 цифр | 8 |
В большинстве случаев для представления чисел используются типы Int
и Double
. Однако время от времени вы будете сталкиваться и с другими типами данных. Предположим, нужно сложить типы Short
, Byte
и Long
. Это можно сделать следующим образом:
1 2 3 4 5 | val a: Short = 12 val b: Byte = 120 val c: Int = -100000 val answer = a + b + c // Ответ будет иметь тип Int |
Double : -1.797693E+308 1.797693E+308 15 цифр 2
Double — два байта ? Охренеть !
Ты тоже заметил?)
8 байт ведь…ошибка тут
Спасибо! Исправил.