Tutorials References Exercises Menu
Paid Courses

Kotlin Variables


Kotlin Variables

Variables are containers for storing data values.

To create a variable, use var or val, and assign a value to it with the equal sign (=):

Syntax

var variableName = value
val variableName = value

Example

var name = "John"
val birthyear = 1975

println(name)          // Print the value of name
println(birthyear)     // Print the value of birthyear
Try it Yourself »

The difference between var and val is that variables declared with the var keyword can be changed/modified, while val variables cannot.


Variable Type

Unlike many other programming languages, variables in Kotlin do not need to be declared with a specified type (like "String" for text or "Int" for numbers, if you are familiar with those).

To create a variable in Kotlin that should store text and another that should store a number, look at the following example:

Example

var name = "John"      // String (text)
val birthyear = 1975   // Int (number)

println(name)          // Print the value of name
println(birthyear)     // Print the value of birthyear
Try it Yourself »

Kotlin is smart enough to understand that "John" is a String (text), and that 1975 is an Int (number) variable.

However, it is possible to specify the type if you insist:

Example

var name: String = "John" // String
val birthyear: Int = 1975 // Int

println(name)
println(birthyear)
Try it Yourself »

You can also declare a variable without assigning the value, and assign the value later. However, this is only possible when you specify the type:

Example

This works fine:

var name: String
name = "John"
println(name)
Try it Yourself »

Example

This will generate an error:

var name
name = "John"
println(name)
Try it Yourself »

Note: You will learn more about Data Types in the next chapter.


Notes on val

When you create a variable with the val keyword, the value cannot be changed/reassigned.

The following example will generate an error:

Example

val name = "John"
name = "Robert"  // Error (Val cannot be reassigned)
println(name)
Try it Yourself »

When using var, you can change the value whenever you want:

Example

var name = "John"
name = "Robert"
println(name)
Try it Yourself »

So When To Use val?

The val keyword is useful when you want a variable to always store the same value, like PI (3.14159...):

Example

val pi = 3.14159265359
println(pi)
Try it Yourself »

Display Variables

Like you have seen with the examples above, the println() method is often used to display variables.

To combine both text and a variable, use the + character:

Example

val name = "John"
println("Hello " + name)
Try it Yourself »

You can also use the + character to add a variable to another variable:

Example

val firstName = "John "
val lastName = "Doe"
val fullName = firstName + lastName
println(fullName)
Try it Yourself »

For numeric values, the + character works as a mathematical operator:

Example

val x = 5
val y = 6
println(x + y) // Print the value of x + y
Try it Yourself »

From the example above, you can expect:

  • x stores the value 5
  • y stores the value 6
  • Then we use the println() method to display the value of x + y, which is 11

Variable Names

A variable can have a short name (like x and y) or more descriptive names (age, sum, totalVolume).

The general rule for Kotlin variables are:

  • Names can contain letters, digits, underscores, and dollar signs
  • Names should start with a letter
  • Names can also begin with $ and _ (but we will not use it in this tutorial)
  • Names are case sensitive ("myVar" and "myvar" are different variables)
  • Names should start with a lowercase letter and it cannot contain whitespace
  • Reserved words (like Kotlin keywords, such as var or String) cannot be used as names

camelCase variables

You might notice that we used firstName and lastName as variable names in the example above, instead of firstname and lastname. This is called "camelCase", and it is considered as good practice as it makes it easier to read when you have a variable name with different words in it, for example "myFavoriteFood", "rateActionMovies" etc.