Как передать по значению в Kotlin? - PullRequest
0 голосов
/ 08 января 2020

Я участвую в конкурсе по программированию с Kotlin, и во многих случаях мне нужно, чтобы параметр передавался по значению, как мне это сделать?

fun main() {
    val p = Person(18)
    println(p.age) // 18
    changeAge(p)
    println(p.age) // 21, but I want it still 18

}

data class Person(var age: Int)

fun changeAge(p: Person) {
    p.age = 21
}

1 Ответ

2 голосов
/ 08 января 2020

вы можете использовать метод copy ().

в вашем коде это будет примерно так

changeAge(p.copy(age=99))
...