В чем разница, если я удаляю ключевое слово 'var' в классе?

Не могли бы вы рассказать мне, какая разница между кодом А и кодом B?

Код А

class Person(firstName: String) { } 

Код B

 class Person(val firstName: String) { } 

сначала так же, как и аргумент вашего конструктора, чтобы установить член класса.

второй вы уже создали переменную-член firstName, и вы передаете ей входящие данные.

второй код равен:

 class Person(firstName: String) { val firstName:String? init{ this.firstName = firstName } } 

Чтобы быть понятным для вас, давайте попробуем этот код

 fun main(args: Array<String>) { var person = Person("Stackoverflow") println(person.firstName) } class Person(val firstName: String) { } 

OUTPUT Stackoverflow

okey попробуем первый код

 fun main(args: Array<String>) { var person = Person("mohamed") println(person.firstName) } class Person( firstName: String) { } 

Ошибка компилятора OUTPUT

Неразрешенная ссылка: firstName