특징

변수

val : read-only 변수

val number = 5

var : 재할당 가능 변수

var number = 5
number = 10

타입 선언

타입을 선언하면 이후에 초기화 가능

var number:Int
number = 10

함수

자바 메서드 == 코틀린 함수

fun sum(a: Int, b:Int): Int {
    return a + b
}

스크립트

코틀린 코드는 스크립트로 실행할 수 있음(build.gradle.kts)

코틀린 스크립트 코드

println("Hello World")

자바 코드

package org.example;

public class Greeting {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

람다식

람다식 : 코드 블록을 변수처럼 취급하는 기능으로 나중에 실행할 수 있음

코틀린 람다식

{} 로 람다식을 정의함

val greeting = {
    println("Hello World")
}

greeting()

자바 람다식

package org.example;

public class Greeting {
    public static void main(String[] args) { 
        Runnable callMeLater = () -> System.out.println("Hello World");
        callMeLater.run(); 
    }
}

코틀린은 마지막 파라미터로 함수를 호출하는 경우, 위 코드처럼 함수를 전달할 수 있음

// 함수 정의
fun greeting(name: String, pre: () -> Unit) {
    pre()
    println("Hello" + name)
}

// 람다식 전달
greeting("Kotlin") {
    println("outside the bracket")
}

람다식을 사용한 gradle task 정의

register 함수는 String과 람다(doLast)를 파라미터로 받는 함수로 추측 가능

tasks.register("greeting") {
    doLast {
        println("Hello World")
    }
}