Sobes.tech
Junior

Оператор 'spread' дар Kotlin чӣ гуна аст ва чӣ гуна истифода бурдан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Оператор 'spread' дар Kotlin ба префикси * пеши массив ё массиви паршаванда (vararg) мувофиқ аст. Он барои интиқоли унсурҳои чунин ҷамъоварӣ ба функсияе, ки шумораи тағйирёбандаи аргументҳоро (vararg) интизор аст, истифода мешавад. Дар асос, он ҷамъовариро (spread) ба аргументҳои алоҳида паҳн мекунад.

Маслиҳат барои истифода:

fun printNumbers(vararg numbers: Int) {
    for (number in numbers) {
        println(number)
    }
}

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Истифодаи оператори spread
}

Бе оператори *, кӯшиши гузаронидани intArray ба функсияи printNumbers ба хатогии компилятсия оварда мерасонад, зеро printNumbers интизор дорад, ки шумораи тағйирёбандаи Int бошад, на массиви Int.

Оператор 'spread' инчунин метавонад дар вақти эҷоди массиви нав бо пайваст кардани массиви мавҷуда бо унсурҳои алоҳида ё дигар массивҳо истифода шавад:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Истифодаи оператори spread
    println(combinedArray.contentToString()) // Натиҷа: [1, 2, 5, 3, 4]
}

Мавзӯъҳои асосӣ:

  • танҳо ба массивҳо (Array, массивҳои primitives) ва Vararg татбиқ мешавад.
  • унсурҳои ҷамъовариро ба аргументҳои алоҳидаи функсия ё унсурҳои массиви нав паҳн мекунад.
  • бо префикси * нишон дода мешавад.