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