English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin 함수

이 문서에서 함수에 대해 알아보겠습니다. 함수는 무엇인가요, 그 문법 그리고 Kotlin에서 사용자 정의 함수를 생성하는 방법에 대해 알아보겠습니다.

프로그래밍에서 함수는 특정 작업을 수행하는 일련의 관련 문장입니다.

함수는 대형 프로그램을 작은 모듈화 블록으로 분할하는 데 사용됩니다. 예를 들어, 사용자 입력에 따라 원을 생성하고 그를 색칠해야 한다면 이 문제를 해결하기 위해 두 가지 함수를 생성할 수 있습니다:

  • createCircle() 함수 - 원을 만들기 위해 사용됩니다

  • colorCircle() 함수 - 색상을 채우기 위해 사용됩니다

복잡한 프로그램을 작은 구성 요소로 나누면 우리의 프로그램이 더 체계적이고 관리하기 쉬워집니다.

또한, 중복을 피하고 코드를 재사용 가능하게 합니다.

함수 유형

사용자 정의 함수 또는 기본 라이브러리 내의 함수에 따라 두 가지 유형의 함수가 있습니다:

  • Kotlin 기본 라이브러리 함수

  • 사용자 정의 함수

Kotlin 기본 라이브러리 함수

기본 라이브러리 함수는 Kotlin에서의 내장 함수로 언제든지 사용할 수 있습니다. 예를 들어,

  • print()는 메시지를 표준 출력 스트림(모니터)에 출력하는 라이브러리 함수입니다.

  • sqrt()는 숫자의 제곱근(Double 값)을 반환합니다

fun main(args: Array<String>) {
    var number = 5.5
    print("Result = ${Math.sqrt(number)}")
}

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

Result = 2.345207879911715

이것은Kotlin 표준 라이브러리링크를 통해 확인할 수 있습니다.

사용자 정의 함수

이전에 설명한 것처럼, 사용자가 직접 함수를 생성할 수 있습니다. 이러한 함수는 사용자 정의 함수라고 합니다.

Kotlin에서 사용자 정의 함수를 생성하는 방법은 무엇인가요?

함수를 호출하기 전에 먼저 정의해야 합니다.

Kotlin에서 함수를 정의하는 방법은 다음과 같습니다:

fun callMe() {
    //함수 본체
}

Kotlin에서 함수를 정의하려면 fun 키워드를 사용합니다. 그런 다음 함수 이름(識別자)。여기서 함수 이름은 callMe입니다.

위 프로그램에서 대괄호( )는 비어 있습니다. 이는 이 함수가 어떤 파라미터도 받지 않는다는 것을 의미합니다. 파라미터에 대해 이해하기 위해 본문의 나중 부분을 확인하세요.

대괄호 내의 코드 { }는 함수의 본체입니다.

함수를 호출하는 방법은 무엇인가요?

함수 내에서 코드를 실행하려면 이 함수를 호출해야 합니다. 이렇게 합니다:

callme()

이 문장은 이전에 선언된 함수 callMe()를 호출합니다.

예제: 간단한 함수 프로그램

fun callMe() {
    println("callMe() 함수에서 출력합니다.")
    println("매우 멋집니다(아직도 내부에서 출력 중입니다).")
}
fun main(args: Array<String>) {
    callMe()
    println("callMe() 함수에서 외부에서 출력합니다.")
}

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

callMe() 함수에서 출력합니다.
매우 멋집니다(아직도 내부에서 출력 중입니다).
callMe() 함수에서 외부에서 출력합니다.

위 코드의 callMe() 함수는 어떤 파라미터도 받지 않습니다.

또한, 이 함수는 어떤 값도 반환하지 않습니다(반환 타입이 Unit입니다).

그런 다음, 다른 함수 예제를 보겠습니다. 이 함수는 파라미터를 받아서 값을 반환합니다.

예제: 함수를 사용하여 두 개의 숫자를 더하다

fun addNumbers(n1: Double, n2: Double): Int {
    val sum = n1 + n2
    val sumInteger = sum.toInt()
    return sumInteger
}
fun main(args: Array<String>) {
    val number1 = 12.2
    val number2 = 3.4
    val result: Int
    result = addNumbers(number1, number2)
    println("result = $result")
}

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

result = 15

파라미터와 반환 값을 가진 함수는 어떻게 작동하는가요?

이곳에서 함수 호출 중 두 개의 Double 타입의 파라미터 number1하고 number2addNumbers() 함수에 전달된. 이 파라미터는 실제 파라미터(또는 실제 파라미터)라고 합니다.

result = addNumbers(number1, number2)

파라미터 n1하고 n2전달된 파라미터(함수 정의에서)를 받아들입니다. 이 파라미터는 형식 파라미터(또는 형태 파라미터)라고 합니다.

Kotlin에서는 파라미터 사이에 쉼표를 사용합니다. 마찬가지로, 형식 파라미터의 타입은 명시적으로 입력되어야 합니다.

주의하세요, 실제 파라미터와 형식 파라미터의 데이터 타입은 일치해야 합니다. 즉, 첫 번째 실제 파라미터의 데이터 타입은 첫 번째 형식 파라미터의 타입과 일치해야 합니다. 마찬가지로, 두 번째 실제 파라미터의 타입은 두 번째 형식 파라미터의 타입과 일치해야 합니다. 이와 같이 계속됩니다.

여기서는,

return sumInteger

return 문입니다. 이 코드는 addNumbers() 함수를 종료하고, 프로그램 컨트롤이 main() 함수로 이동합니다.

프로그램에서 sumInteger는 addNumbers() 함수에서 반환됩니다. 이 값은 변수 result에 할당되었습니다.

주의하세요,

  • sumInteger와 result는 모두 Int 타입입니다.

  • 함수의 반환 타입은 함수 정의에서 지정됩니다.

    //반환 타입이 Int입니다
    fun addNumbers(n1: Double, n2: Double): Int {
        ... .. ...
    }

함수가 어떤 값도 반환하지 않는 경우, 그 반환 타입은 Unit입니다. 반환 타입이 Int인 경우, 함수 정의에서 반환 타입을 지정할 수 있습니다.

예제: 함수를 사용하여 이름을 표시

fun main(args: Array<String>) {
    println(getName("John", "Doe"))
}
fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

이 프로그램을 실행할 때, 출력은 다음과 같습니다:

John Doe

이곳에서 getName() 함수는 두 개의 String 파라미터를 받아 String을 반환합니다.

함수가 단일 표현식을 반환하는 경우(위 예제와 같이), 함수 본체의 괄호 {}를 생략할 수 있으며, = 기호 뒤에 본체를 지정할 수 있습니다.

이 경우, 명시적으로 반환 타입을 선언하는 것은 선택 사항입니다. 왜냐하면 반환 타입은 컴파일러가 유추할 수 있습니다. 위의 예제에서는 반환 타입을 대체할 수 있습니다.

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

равносильно:

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

이 기사는 Kotlin 함수의 간단한 소개입니다.