1. Home
  2. Learn
  3. Introduction to Programming in Kotlin

Introduction to Programming in Kotlin

Kotlin is a modern, statically typed programming language developed by JetBrains. It is fully interoperable with Java and is the preferred language for Android development. Kotlin combines object-oriented and functional programming features, offering concise syntax, null safety, and powerful tools for building robust applications.

This guide will introduce you to the fundamentals of Kotlin programming, helping you write clean, expressive, and efficient code.


Table of Contents

  1. What is Kotlin?
  2. Setting Up Your Environment
  3. Variables and Data Types
  4. Control Flow
  5. Functions
  6. Null Safety
  7. Collections
  8. Object-Oriented Programming
  9. Functional Programming
  10. Coroutines

What is Kotlin?

Kotlin is a statically typed, general-purpose programming language designed to be concise, expressive, and interoperable with Java. It is widely used for Android development, server-side applications, and more.

1// Example: Your first Kotlin program
2fun main() {
3    println("Hello, Kotlin Programming!")
4}

Setting Up Your Environment

To write and run Kotlin programs, you need the Kotlin compiler or an IDE like IntelliJ IDEA. You can also use the online Kotlin Playground.

1# Example: Running a Kotlin program
2kotlinc main.kt -include-runtime -d main.jar
3java -jar main.jar

Variables and Data Types

Kotlin is statically typed, but it supports type inference, allowing you to omit explicit type declarations. Common data types include Int, Double, String, and Boolean.

1// Example: Declaring variables
2fun main() {
3    val age: Int = 25 // Immutable variable
4    var height = 5.9 // Mutable variable with type inference
5    val name = "Alice"
6    val isStudent = true
7
8    println("Name: $name, Age: $age, Height: $height")
9}

Control Flow

Kotlin supports if, when, and loops (for, while, do-while) for controlling program flow.

 1// Example: Conditional statement
 2fun main() {
 3    val age = 18
 4
 5    if (age >= 18) {
 6        println("You are an adult.")
 7    } else {
 8        println("You are a minor.")
 9    }
10}

Functions

Functions are defined using the fun keyword. Kotlin supports default arguments, named arguments, and single-expression functions.

1// Example: Function
2fun add(a: Int, b: Int): Int {
3    return a + b
4}
5
6fun main() {
7    val result = add(5, 10)
8    println("Result: $result") // 15
9}

Null Safety

Kotlin's type system distinguishes between nullable and non-nullable types, helping to avoid null pointer exceptions.

1// Example: Null safety
2fun main() {
3    val name: String? = null // Nullable type
4    val length = name?.length ?: 0 // Safe call operator with Elvis operator
5
6    println("Length: $length") // 0
7}

Collections

Kotlin provides a rich set of collections, including lists, sets, and maps, with functional operations like map, filter, and reduce.

1// Example: List
2fun main() {
3    val numbers = listOf(1, 2, 3, 4, 5)
4    val evenNumbers = numbers.filter { it % 2 == 0 }
5
6    println("Even Numbers: $evenNumbers") // [2, 4]
7}

Object-Oriented Programming

Kotlin supports classes, inheritance, interfaces, and data classes for object-oriented programming.

1// Example: Data class
2data class Person(val name: String, val age: Int)
3
4fun main() {
5    val person = Person("Alice", 25)
6    println("Name: ${person.name}, Age: ${person.age}")
7}

Functional Programming

Kotlin supports functional programming features like higher-order functions, lambdas, and immutability.

1// Example: Higher-order function
2fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
3    return operation(a, b)
4}
5
6fun main() {
7    val sum = operateOnNumbers(5, 10) { x, y -> x + y }
8    println("Sum: $sum") // 15
9}

Coroutines

Kotlin's coroutines provide a way to write asynchronous, non-blocking code in a sequential style.

 1// Example: Coroutine
 2import kotlinx.coroutines.*
 3
 4fun main() = runBlocking {
 5    launch {
 6        delay(1000L) // Non-blocking delay
 7        println("World!")
 8    }
 9    println("Hello,")
10}