Декларация массива в Котлине - PullRequest
0 голосов
/ 09 мая 2018

Код ниже является примером объявления массива в Kotlin,

fun main(args: Array<String>) {

    var a = Array<Int>(2){0}
    a[0] = 100
    a[1] = 200
    print(a[1])

}

Здесь переменная a - это массив размера 2, имеющий значения 100 и 200, и он печатает значение a [1] как 200 .

Мой вопрос -> Какова роль "0" в var a = Array (2) {0} ?

Я изменил значение "0" на другое целочисленное значение, но оно работает нормально, но я не смог найти вариант его использования. Кто-нибудь может это объяснить?

Любая помощь будет оценена.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

0 - это то, с чем вы инициализируете каждый элемент вашего массива (в вашем случае 2), используя следующий конструктор:

public inline constructor(size: Int, init: (Int) -> T)

Вы можете сделать это видимым, напечатав массив сразу после его инициализации:

var a = Array<Int>(2){0}
println(a.contentToString())

Пожалуйста, рассмотрите возможность использования arrayOf(0,0) для такого простого варианта использования, который более идиоматичен.

0 голосов
/ 09 мая 2018

Массивы в Kotlin представлены классом Array, который имеет функции get и set (которые превращаются в [] в соответствии с соглашениями о перегрузке операторов) и свойство size, а также несколько других полезных функций-членов:

class Array<T> private constructor() {
    val size: Int
    operator fun get(index: Int): T
    operator fun set(index: Int, value: T): Unit

    operator fun iterator(): Iterator<T>
    // ...
}

Вы можете написать

var a = Array(2){0}

Создает новый массив с указанным [размером], где каждый элемент вычисляется путем вызова указанного * [init] функция. Функция [init] возвращает элемент массива с указанным индексом.

 public inline constructor(size: Int, init: (Int) -> T)

Чтение Arrays in Kotlin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...