Неразрешенная контрольная ошибка в copyOfRange

Я пытаюсь скопировать первые 2 элемента моего firstArray в мой второй массив.

var firstArray = arrayListOf(1,2,3,4) var secondArray = firstArray.copyOfRange(0,1) 

Однако по какой-то причине я получаю сообщение об ошибке «unsolved reference» в copyOfRange.

Если я определяю тип массива для моего первого массива, я могу решить проблему, но я не хочу, потому что он может содержать разные переменные в будущем

Функция arrayListOf возвращает ArrayList . Если это то, что вы хотите использовать, вы должны использовать функцию subList :

 val firstList = arrayListOf(1, 2, 3, 4) val secondList = firstList.subList(0, 1) 

Обратите внимание, что subList не создает копию, вы можете сделать копию с вызовом toList , например:

 val secondList = firstList.subList(0, 1).toList() 

Или с явным вызовом конструктора ArrayList :

 val secondList = ArrayList(firstArray.subList(0,1)) 

Если вы хотите использовать Array вместо этого, используйте arrayOf а затем вы можете использовать copyOfRange :

 val firstArray = arrayOf(1, 2, 3, 4) val secondArray = firstArray.copyOfRange(0, 1)