For Programmer

5. 코틀린 - 메소드 본문

Programming language/Kotlin

5. 코틀린 - 메소드

유지광이 2021. 8. 23. 20:00
728x90

함수


- 어떤 input을 넣어주면 어떤 output 나오는것
- y = x + 2

 


-함수를 선언하는 방법

fun 함수명(변수명:타입,변수명:타입...) : 반환형 {
함수내용
return 반환값
}

fun plus(first: Int, second: Int): Int {
    val result: Int = first + second
    return result
}

함수 호출

var result = plus(1, 2)
val result2 = plus(second = 20, first = 30) //인수를 명시적으로 전달가능
    println(result) // 3출력
    println(result2) //50출력

함수의 매개변수에 default값을 선언해줄 수 있다.

// 디폴트 값을 갖는 함수 만들기
fun plusFive(first: Int, second: Int = 5): Int {
    val result: Int = first + second
    return result
}
//디폴트 값을 갖는 함수 호출 하기
    val result3 = plusFive(20)
    println(result3) // 25출력

-> 20을 first로 5를 second로 인자를 전달하게 된다.

 

 

반환값이 없는 함수(Unit형) 

//반환 값이 없는 함수 만들기(자바에서 void형과 비슷)
    fun printPlus(first: Int, second: Int): Unit {
        val result: Int = first + second
        println(result)
    }
    
    // Unit은 생략이 가능
    fun printPlus2(first: Int, second: Int) {
        val result: Int = first + second
        println(result)
    }

 

간단하게 함수를 호출하는 방법

 // - 간단하게 함수를 선언하는 방법(= -> return 이라고생각)
    fun plusShort(first: Int, second: Int) = first + second

    println(plusShort(10, 30)) // 40출력

 

가변인자를 갖는 함수 선언 방법(인자의 개수에 제한이 없음)

// 가변인자를 갖는 함수 선언하는 방법(0~n개의 인자를 받기 가능)
    fun plusMany(vararg numbers:Int) {
        for ( number in numbers){
            print("$number ") 
            //print(""+number+" ") 다음과같이도 표현가능
        }
    }
    plusMany(1,2,3,4,5)//1,2,3,4,5 출력

 

함수 안의 함수(내부함수)

//내부 함수
//함수 안에 함수
fun showMyPlus(first: Int,second: Int): Int {
    println("외부함수: " +first)
    println("외부함수: " +second)

    fun plus(first: Int,second: Int): Int {
        println("내부함수: " +first)
        println("내부함수: " +second)
        return first + second
    }

    return plus(first+1,second+1)
}
외부함수: 1
외부함수: 2
내부함수: 2
내부함수: 3
5
728x90

'Programming language > Kotlin' 카테고리의 다른 글

7.(1) 코틀린 - 조건문 - if문  (0) 2021.08.23
6. 코틀린 - 연산자  (0) 2021.08.23
4. 코틀린 - 변수 선언 심화(Null값 선언)  (0) 2021.08.23
3. 코틀린 - 자료형  (0) 2021.08.23
2. 코틀린 - Var 과 Val 차이  (0) 2021.08.23
Comments