함수

Anna·2024년 5월 27일

[TIL] Kotlin

목록 보기
7/28
post-thumbnail

함수(Function)

함수는 input 값을 받아 일련의 기능을 수행하는 코드 구성을 의미한다.
함수는 결과물을 돌려주거나 돌려주지 않을 수 있다.
(함수를 사용할 때는 매개변수, 함수를 사용할 때는 인자라고 한다.)

함수의 선언

fun functionName(parameters: Type) : ReturnType
{
	표현식
	return returnValue
}

✍️ ReturnType 필요한 경우

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

//return을 생략한 표현식 - 간략화된 함수
fun sum2(a:Int, b:Int):Int = a + b
//반환 자료형 생략
fun sum3(a:Int, b:Int) = a + b

✍️ ReturnType 필요없는 경우

fun printSum(a:Int, b:Int):Unit     //Unit 생략해도 된다. 
{
println("sum of $a and $b is ${a+b}")
}

✍️ sumFunc.kt

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

fun main() 
{
    val result1 = sum(3, 2)
    val result2 = sum(6, 7)

    println(result1)    //결과  5 나옴
    println(result2)    //결과 13 나옴
}

✍️ 특정 인자에 기본값을 넣기

//작성한 매개변수가 아무리 많아져도 default값을 넣어 초기화할 수 있다.
//해당 인자 중에 필요한 부분만 골라내서 초기화할 수 있다. 

fun add(name : String, email : String = "default")
{
    add("HyeRyeong")   //name만 입력하면 된다.
}

✍️ namedParam.kt

fun main(args : Array<String>)
{
	namedParam(x = 200, z = 100) //x,z의 이름과 함께 함수 호출(y는 기본값 사용)
	namedParam(z = 150) //z의 이름과 함께 함수 호출(x와 y는 기본 값으로 지정됨)

}

fun namedParam (x : Int = 100, y : Int = 200, z :Int)
{
	println(x+y+z)
}

✍️ DefaultParameter.kt

fun main()
{
    val name = "홍길동"
    val email = "hong@example.kr"

    add(name)             
    add(name, email)
    defaultArgs()
    defaultArgs(200)    
}

fun add(name:String, email:String = "default")
{
    val output = "${name}님의 이메일은 ${email}입니다"
    println(output)
}

fun defaultArgs(x: Int = 100, y : Int = 200)
{
    println(x + y)
}

//결과
홍길동님의 이메일은 default입니다
홍길동님의 이메일은 hong@example.kr입니다
300
400

✍️ 가변적인 매개변수 받기

fun main(args : Array<String>)
{
    normalVarargs(1, 2, 3, 4)   //4개 인자 구성
    normalVarargs(4, 5, 6)      //3개 인자 구성
}
fun normalVarargs(vararg counts : Int)
{
    for (num in counts)
    {
        println("${num}")
    }
    println("\n")
}

0개의 댓글