Массивы примитивных типов в Kotlin | OTUS

Массивы примитивных типов в Kotlin

Когда используешь функцию arrayOf() и создаешь массив с типами вроде Array<Int>, полученный таким образом массив будет представлять собой список из объектов. К примеру, при работе в JVM целочисленный тип будет упакован не как примитивный тип int, а как класс Integer. Все это, конечно, неплохо, однако есть нюанс: применение примитивных типов, если сравнивать их с аналогами в виде классов, потребляет меньше системной памяти, следовательно, повышает производительность. Как же создавать массивы примитивных типов в Kotlin? Нам помогут IntArray, FloatArray и DoubleArray.

1-1801-2bb9d8.png

Примечание: у вас не получится использовать примитивы со списками, поэтому принимать решение об использовании примитивов следует, рассматривая каждый случай отдельно.

Итак, продолжим. Стандартная библиотека Kotlin включает в себя не только arrayOf(), но и прочие функции -- они как раз и позволяют пользователю создавать массивы, которые будут соответствовать массивам примитивных типов. Например, никто не мешает получить массив нечетных чисел таким образом:

1-1801-d31a3e.png

То есть при запуске Kotlin в JVM массив с именем oddNumbers скомпилируется в Java-массив типа int[].

Однако существуют и другие функции стандартной библиотеки:

  • floatArrayOf()
  • doubleArrayOf()
  • booleanArrayOf()

Функции, упомянутые выше, позволяют создавать массивы соответствующих типов: IntArray, FloatArray, DoubleArray и пр. Кроме того, есть возможность передать число в конструктор для этих типов. Например, это может пригодиться при создании массива нулей.

2-1801-620b4f.png

Если же надо осуществить конвертацию между упакованными и примитивными массивами, пригодится функция toIntArray():

3-1801-a4f466.png

В результате типом константы otherOddNumbers станет уже IntArray, а не Array<Int>.

1-1801-18e7ba.png

По материалам https://kotlins.org/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто