Kotlin is a statically typed programming language that is designed to be fully interoperable with Java. It's concise, safe, and expressive, making it a popular choice for Android development and many other applications. Let's dive into some of the fundamental aspects of its syntax and constructs.
1. Variables
In Kotlin, you can define variables using two keywords: val
and var
. The val
keyword is used for read-only properties, while var
is used for mutable variables.
Example:
fun main() { val immutableVariable: String = "Hello, Kotlin!" // Read-only var mutableVariable: Int = 10 // Mutable println(immutableVariable) println(mutableVariable) // You can update the mutable variable mutableVariable += 5 println(mutableVariable) }
In the example above, immutableVariable
is declared with val
and cannot be changed after its initial assignment. Conversely, mutableVariable
is declared using var
, which allows it to be updated later.
2. Data Types
Kotlin has a rich set of built-in data types such as Int
, Double
, String
, and Boolean
, among others. You don't need to specify the type explicitly, as Kotlin has type inference.
Example:
fun main() { val name = "Kotlin" // Type inferred as String val age = 5 // Type inferred as Int val pi = 3.14 // Type inferred as Double val isAwesome = true // Type inferred as Boolean println("$name is $age years old.") println("Value of Pi: $pi") println("Is Kotlin awesome? $isAwesome") }
In the above code, the type of each variable is inferred from the assigned value, making the syntax cleaner.
3. Control Flow
Kotlin provides control flow statements like if
, when
, for
, and while
, which allow you to control the execution of your code.
Example (If Statement):
fun main() { val number = 10 if (number > 0) { println("$number is positive.") } else { println("$number is negative or zero.") } }
Example (When Statement):
fun main() { val dayOfWeek = 5 when (dayOfWeek) { 1 -> println("It's Monday!") 2 -> println("It's Tuesday!") 3 -> println("It's Wednesday!") 4 -> println("It's Thursday!") 5 -> println("It's Friday!") 6, 7 -> println("It's the weekend!") else -> println("Invalid day.") } }
4. Loops
Kotlin supports various types of loops, including for
, while
, and do..while
.
Example (For Loop):
fun main() { for (i in 1..5) { println("Iteration: $i") } }
Example (While Loop):
fun main() { var count = 5 while (count > 0) { println("Count: $count") count-- } }
5. Functions
Functions in Kotlin are defined using the fun
keyword, followed by the function name, parameters, and return type.
Example:
fun main() { val result = add(5, 10) println("The result of addition is: $result") } fun add(a: Int, b: Int): Int { return a + b }
In the above example, we define a simple function add
that takes two parameters and returns their sum.
Kotlin also supports higher-order functions, which allow you to pass functions as parameters or return them. Let’s take a look at an example:
Example (Higher-Order Function):
fun main() { val sum = higherOrderFunction(5, 10, ::add) println("The result of higher order addition is: $sum") } fun add(a: Int, b: Int): Int { return a + b } fun higherOrderFunction(a: Int, b: Int, operation: (Int, Int) -> Int): Int { return operation(a, b) }
In this code, higherOrderFunction
takes two integers and a function as parameters, then applies that function to the integers.
These constructs form the cornerstone of writing programs in Kotlin. As you explore Kotlin, you'll find it offers many advanced features like extension functions, coroutines, and much more, all while maintaining a clean and readable syntax. Happy coding!