Post

코틀린 기본2 - 변수와 함수

변수 선언

코틀린은 변수 선언 시 val 또는 var 키워드를 사용한다.
아래 코드를 보면 val, var 키워드와 함께 변수를 선언하였다. 그리고 변수명 뒤에 콜론(:)을 붙이고 자료형을 명시한다.
자료형을 생략하면 컴파일 시점에 변수에 초기화 값으로 자료형을 추론하여 자동으로 할당한다.

1
2
3
// 자바와 달리 세미콜론(;)을 붙이지 않아도 된다.
val a: Int = 1
var b: String = "abc"

val, var 차이점

val : value의 약자로 변경 불가능한 변수를 선언할 때 사용한다.
var : variable의 약자로 변경 가능한 변수를 선언할 때 사용한다.

즉, val로 선언한 변수는 한번 값을 지정하면 다른 값을 대입할 수 없다. 반면 var로 선언한 변수는 값을 다시 대입할 수 있다.
val로 선언한 변수에 값을 다시 할당하려 하는 경우 컴파일 에러가 발생한다.


함수

기본적으로 함수(Method)는 fun 키워드를 사용하여 선언한다. 반환 타입을 지정할 수 있으며 표현식을 다양하게 사용할 수 있다.

다양한 함수 선언

아래는 다양한 함수 선언 방법을 보여준다.

함수명() 뒤에 콜론(:)을 붙여 반환타입 지정

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

표현식과 반환타입 생략

1
fun sum(a: Int, b: Int) = a + b

반환값이 있는 경우 반환 타입이 지정이 안되면 컴파일 에러 발생

1
2
3
fun sum(a: Int, b: Int) {
  return a + b // 컴파일 에러. 반환 타입 지정 필요.
}

반환값이 없는 함수는 반환타입 Unit을 지정(생략 가능)

1
2
3
fun printSum(a: Int, b: Int): Unit {
  println("sum of $a and $b is ${a + b}")
}

함수 파라미터에 디폴트값 설정이 가능하다.

1
2
3
4
5
6
7
fun greeting(message: String = "Hello") = println(message)

fun main() {
  // 함수 호출 시 디폴트 파라미터는 생략 가능하다.
  greeting() // "Hello"
  greeting("Hi") // "Hi"
}
This post is licensed under CC BY 4.0 by the author.