Kotlin Индексирование фрагментов массива - PullRequest
0 голосов
/ 03 апреля 2020

Допустим, я хочу перебрать все элементы, кроме первого в Kotlin IntArray. В настоящее время я делаю это так:

fun minimalExample(nums: IntArray): Unit {
    for(num in nums.sliceArray(IntRange(1,nums.size-1))) println(num)
}

Существует ли простой синтаксис для выполнения этого, как в Python (я не хочу указывать конечный индекс nums массив):

for (num in nums[1:])

Ответы [ 2 ]

3 голосов
/ 03 апреля 2020

Я думаю, вы могли бы использовать Kotlin drop, который удалит первые n элементы массива.

fun minimalExampleWithDrop(nums: IntArray): Unit {
    for(num in nums.drop(1)) println(num)
}

minimalExampleWithDrop(intArrayOf(1,2,3,4,5,6))
// 2
// 3
// 4
// 5
// 6

Repl.it: https://repl.it/repls/SvelteShadyLivecd

2 голосов
/ 03 апреля 2020

Основа c для l oop с 1 в качестве начального индекса

    val myList = intArrayOf(1,2,3,4,5,6)

    for(i in 1 until myList.size){
        Log.d(TAG,"${myList[i]}")
    }

Или, поскольку это IntArray, вы можете использовать его как Iterator и пропустить элементы, как показано здесь

    val iterator = myList.iterator()
    // skip an element
    if (iterator.hasNext()) {
        iterator.next()
    }
    iterator.forEach {
        Log.d(TAG,"it -> $it")
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...