티스토리 뷰

프로그래밍 언어의 가장 기본인 함수와 변수 선언 방법에 대해 알아보자.

#> 함수선언


코틀린에서 함수를 선언하는 방식은 Java와는 다르게 아래와 같은 규칙을 가지고 있습니다.

  • 함수를 선언할 때 fun 이라는 키워드를 사용한다.
  • 함수에 Parameter가 없는 경우에는 빈 괄호를 입력한다.
  • 함수의 Parameter는 이름을 먼저 명시한 뒤, 콜론(:) 뒤에 타입을 명시한다.
  • 함수의 Parameter가 2개 이상인 경우 콤마(,)로 구분한다.
  • 리턴 타입은 함수이름 뒤에 명시한다.

위 규칙을 실제로 적용하면서 간단한 함수를 선언해보도록 하겠습니다.

fun main() {
    println("main function")
}

위 함수는 이전 포스팅에서 살펴봤던 Hello World를 출력하는 형태를 가지고 있습니다. fun 키워드를 통해 함수임을 명시하고, 매개변수가 없으므로 빈 활호를 입력합니다. 그리고 함수 블록에는 println 함수를 통해 문자열을 출력합니다.

main 함수를 실행한 모습

하지만 실제 개발시에는 함수에 특정한 값을 입력해 의미있는 값을 리턴받곤 합니다. 여기 두 값을 입력받아 더한 뒤 결과를 리턴하는 함수가 있습니다.

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

a와 b라는 Int 타입의 매개변수를 입력받아 Int 타입의 값을 리턴하는 형태를 가지고 있습니다. 그런데, 이 함수의 경우 본문 블럭이 a+b라는 식 하나로만 이루어져 있습니다. 이런 함수를 식이 본문인 함수 라고 칭하며, 아래와 같이 간결하게 표현이 가능합니다.

fun add(a: Int, b: Int): Int = a + b

여기서 우리는 Kotlin을 더 잘 이해하고 있다는 것을 보여주기 위해 반환 타입을 생략해 더 간결하게 코드를 작성할 수 있습니다. 바로 이렇게요.

fun add(a: Int, b: Int) = a + b

이런 형태의 표현이 가능한 이유는 컴파일러가 함수의 식을 분석해 결과 값의 타입을 자동으로 정해주기 때문입니다. 이런 기능을 타입 추론(Type Inference)이라고 부릅니다.

 

 

#> 변수 선언


코틀린에서 변수를 선언할 때는 2가지 키워드 중 하나를 사용합니다.

  • val - Java에서 final 변수와 같은 의미를 가집니다. 변수가 한 번 초기화 되고나면 값의 수정이 불가능합니다.
  • var - Java의 일반 변수에 해당합니다.

위 키워드 중 하나를 반드시 맨 앞에 명시해야 하며 타입은 뒤에 명시하거나 생략할 수 있습니다. 여기서 생략이 가능한 이유는 함수선언 섹션에서 언급했던 타입 추론이 가능하기 때문입니다.

// 타입 추론이 가능하므로 변수 선언 시 타입을 생략하는 경우
val nameInf = "불타는 개발자 디빌리"
var countInf = 0
var rating = 9.14e3

// 변수 타입을 명시하는 경우
val name: String = "내 이름은 String"
var count: Int = 0
var rating: Double = 9.14e3

단, 변수 선언과 동시에 초기화를 하지 않는 경우에는 반드시 타입을 명시해야 합니다.

타입을 명시하지 않아 애러가 발생하는 경우

 

 

#> 마치며


오늘은 가장 기초적인 부분인 함수와 변수 선언에 대해 다뤄보았습니다. 기초적인 내용부터 탄탄히 다진 뒤 Kotlin을 코틀린답게 쓸 수 있게 해주는 마법같은 장치들과 기능들에 대해 포스팅 하도록 하겠습니다.

 

끝까지 글 읽어주셔서 감사합니다. 좋은하루 되십시오.

 

 

코틀린 기초 시리즈는 도서 『Kotlin in Action, Svetlana Isakova』을 참고해 작성되었습니다.

 

 


 

광고 클릭, 하트, 댓글은 필자에게 큰 힘이 됩니다!

 

댓글