Kotlin - 함수와 변수 기초 배우기

모든 프로그래밍이 배울 때 함수와 변수부터 시작하듯 코틀린을 배우는 방법도 첫 단추는 함수와 변수입니다. 코틀린으로 어떤 앱을 만들든 웹 서버를 만들든 함수와 변수는 가장 기초에 속하는 개념입니다. 오늘은 코틀린에서 정의된 함수와 변수의 기초 개념을 공부해보도록 하겠습니다. 앱을 만들어 보고 싶어 코틀린을 배우고 있는데 접한 지 얼마 되지 않아 많이 서투르고 어색하네요

Hello, world!

 틀에 박힌 시작이기는 하지만 "Hello, world"를 출력하는 코드로 가볍게 코틀린을 알아보도록 하겠습니다.

fun main(args: Array<String>) {
    println("Hello, world")
}

 자바로 프로그래밍을 배우신 분이라면 뭔가 비슷한 형태의 코드라고 생각하실 수 도 있겠네요. 위에서 정의한 "Hello, world"를 출력하는 코드는 어떤 특징이 있을까요?  main()은 진입점이 되는 함수이기 때문에 main()의 이름을 변경한다면 코드는 실행되지 않아요.

 

- 함수를 원하는 곳에 정의할 수 있다. (자바처럼 클래스 안에 정의하지 않아도 된다.)

- 매개변수 이름 뒤에 타입을 선언한다. (Typescript처럼)

- 세미콜론(;)을 사용하지 않아도 된다.

 

 코틀린 코드를 웹에서 실행해보고 싶으시다면 https://play.kotlinlang.org 이 링크로 접속해서 실행해보세요. 웹에서도 코틀린 코드를 실행해 볼 수 있습니다.

함수 정의와 사용 방법

 앞서 살펴본 main() 함수처럼 코틀린에서 함수를 정의하는 방법은 다른 프로그래밍 언어와 크게 다르지 않습니다. 간단하게 sum()이라는 합산을 구하는 함수를 정의해서 코틀린의 함수 구조를 확인해보겠습니다.

fun sum(number1: Int, number2: Int): Int {
    // number1.plus(number2)
    return number1 + number2 
}

fun main() {
    val result = sum(1, 1)
    
    println(result)
}

 합산을 구하는 sum() 함수를 정의하고 사용하는 예제입니다. 말보다는 그림으로 sum() 함수를 가지고 코틀린에서 어떻게 함수를 정의하는지 알아볼까요?

코틀린 함수 정의

 함수를 선언하려면 fun 키워드를 사용해야 합니다. fun 뒤에는 함수의 이름을 지정하고 괄호를 이용해 매개변수를 지정합니다. 매개변수가 없다면 ()만 입력하면 됩니다. 그리고 ":"를 사용해 이 함수가 반환하는 타입을 정의합니다. 반환하는 값이 없다면 main()처럼 아무런 값을 정의하지 않으면 됩니다.

 

 만약 매개변수라는 개념이 어렵거나 처음 접하셨다면, 이전의 매개변수(Parameter)와 인자(Argument)에 대한 글을 참조해주세요.

예제 코드 실행 결과 - https://play.kotlinlang.org

변수 정의와 사용 방법

  코틀린에서 함수를 정의하는 방법을 확인했다면 이번에는 변수를 정의하는 방법을 알아보겠습니다. 코틀린에서는 변수를 정의할 때는 변수 값의 타입뿐만 아니라 변수의 타입도 정의할 수 있는데요. 바로 val과 var입니다.

 

 - val(value): 한번 값이 정의되면 다시 값을 정의할 수 없는 변수 타입입니다.

val(value) - 코틀린 변수 정의

 - var(variable): val과 정반대가 되는 개념으로 언제든 값이 변경 가능한 변수 타입입니다.

var(variable) - 코틀린 변수 정의

 코틀린으로 프로그래밍을 할 때 변경이 가능한(Mutable) 값은 필요할 때만 사용하는 게 좋습니다. 변경이 불가능한(Immutable) 값을 쓰는 습관을 들인다면 불필요하게 값을 변경하는 코드를 줄일 수 있습니다.

 

 변수의 타입을 정의하는 방법을 확인해다면 이제는 변수 값의 타입을 정의하는 방법을 알아볼 차례입니다. 변수 값의 타입은 함수에서 반환 타입을 정의할 때와 유사합니다.

    val number: Int = 7
    val message: String = "Hello, world"

 변수 값의 타입은 변수 이름 뒤에 ":"를 사용해서 정의할 수 있습니다. 하지만 초기화와 함께 값을 정의하면 변수 값의 타입을 지정하지 않아도 됩니다.

    val number = 7
    val message = "Hello, world"

 변수의 초기화와 함께 사용할 값을 입력한다면, 컴파일러의 타입 추론에 의해 변수 값의 타입이 지정되기 때문에 변수 값의 타입은 지정하지 않아도 됩니다. 초기 화식을 사용하지 않는다면 변수 값의 타입은 반드시 정의되어야 합니다.

    val message:String
    message = "Hello, world"

 val 변수 타입은 값을 변경할 수 없지만, 필요에 따라서는 선언만 해놓고 값을 초기화시켜서 사용할 수 있습니다.

끝맺음

 앱을 만들어보고 싶어서 코틀린을 배우기로 했는데 생각보다 어렵기도 하고 재미있기도 하네요. 자바와 타입 스크립트 중간에 있는 녀석 같달까? 함수도 그렇고 변수도 그렇고 참 신기한 것 같습니다. 오늘은 가볍게 코틀린의 함수와 변수에 대해 알아보았습니다. 그럼 시간이 나는 데로 조금씩 코틀린에 대해 글을 남겨보도록 하겠습니다.

반응형

'프로그래밍 > 코틀린' 카테고리의 다른 글

Kotlin - Enum 정의와 사용 방법 알아보기  (0) 2022.05.20

댓글

Designed by JB FACTORY