Kotlin: В чëм разница в "class User(private val name : String)" и class User(user: String)"
В чëм разница между class User(private val name : String) и class User(user: String) в Kotlin?
Много искал, но нигде не пишут об этом, обьясните разницу, и если можно, то пример.
Ответы (2 шт):
Сам недавно начал изучать программирование, поэтому могу дать не совсем точный ответ.
В первом случае (class User(private val name : String)) в этом классе ты можешь использовать переменную name где угодно, как при объявлении и инициализации других переменных, так и в функциях.
Во втором случае (class User(user: String)) данная переменная может быть использована только при объявлении и инициализации переменных класса.
Во втором случае это сокращенная форма обьявления первичного конструктора и user: String это всего лишь его параметр и может быть использован только в момент создания обьекта. Аналогичная полная форма
class User constructor(user: String)
В первом случае опять же все тот же первичный конструктор, только private val name: String уже является обьявлением private property, которое будет являться частью созданного конструктором обьекта.
Об этом пишут в офф. документации
https://kotlinlang.org/docs/classes.html#constructors