В kotlin переменные параметров создаются как локальные переменные 'val', которые нельзя использовать для других значений - PullRequest
0 голосов
/ 05 июля 2019

Привет, я новичок в kotlin и у меня возникла путаница с переменными параметров, они созданы как локальные переменные 'val', которые нельзя использовать для других значений. например:

fun myFunction(mesg:String){
 mesg="hi" //local val variables that can’t be reused for other values
}

но приведенный ниже код работает нормально

fun main(args: Array<String>) {
    val abc = arrayOf("A", "B", "C")
    updateArray(abc)

    println(abc[2])// print Z
}

fun updateArray(abcParam: Array<String>) {
    abcParam[2] = "Z" // 
}

1 Ответ

1 голос
/ 05 июля 2019

Имейте в виду, что в kotlin все передается функциям по значениям. Для примитивных типов это нормально и довольно очевидно, что вы не можете изменить переменную, переданную по значению. Но если мы говорим об объектах, его ссылка передается функции, поэтому вы не можете изменить только ссылку, переданную функции, но можете свободно изменять объект, на который указывает ссылка. Вот почему вы можете изменить элементы массива, но не можете изменить строку.

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