Kotlin essentials
This is the first post in the series "Kotlin, the essence of Java". It's a reference page that will introduce some Kotlin concepts needed to understand the rest of the Kotlin series.
';' expected
First of all, no more need for the semi-colon on every single line!
Personal frustration: If the compiler is expecting it and it isn't there, why not add it!? Thank you Kotlin for removing this.
Variable types
In Kotlin, types are given after the variable name, separated by a colon:
var name: String = "Sander"
Type inference
Kotlin uses type inference if you don't specify the type explicitly. So you can write the code above like:
var name = "Sander"
val/var
In Kotlin the val
and var
keywords indicate fixed value or a variable. A val
cannot be reassigned (like the final
keyword in Java).
var myName = "Sander"
myName = "Batman" // ok
val fixedName = "Sander"
fixedName = "Joker" // compilation error
Null handling
This is where Kotlin really trumps Java! By default everything in Kotlin is non-nullable. If you want it to be nullable, you have to specify it by adding a ?
to the type:
val nullable: String? = null // ok
val nonNullable: String = null // compilation error
This saves you from debugging a lot of NullPointerException
cases.
Default arguments + String interpolation
Instead of function overloading, your can assign default values to method parameters:
fun sayHello(to: String = "World") {
print("Hello, $to")
}
You can call the function with and without an argument:
sayHello() // "Hello, World"
sayHello("Sander") // "Hello, Sander"
Also, see how the parameter to
is used in the printed String? No String concatenation needed.
Now that you've read the essentials, back to the series!