st88
st88

Reputation: 179

Meaning of val / var when using Kotlin Primary constructor

I have seen Kotlin-examples using a Primary-constructor like this:

class Person(firstName: String, lastName: String) {}

And I have seen example with the var or val keyword, like this:

class Person(val firstName: String, val lastName: String) {}

What the difference? When do I have to use which variation?

Upvotes: 0

Views: 128

Answers (1)

flaxel
flaxel

Reputation: 4577

Regarding the documentation, with var or val in the constructor you create a property in the class. If you do not write it, then it is only a parameter that is passed to the constructor. As an example:

class Person(val firstName: String, lastName: String) {
    
    // firstName and lastName accessible
  
    fun getFirstName() = firstName // firstName accessible

    fun getLastName() = lastName // lastName not accessible
}

So if you want to continue to use the firstName and lastName, I would make a property out of it.

Upvotes: 3

Related Questions