끄적이는 메모장

[Kotlin] 함수, 지역함수 본문

Kotlin/Kotlin Programming

[Kotlin] 함수, 지역함수

밥보92 2022. 5. 6. 13:43
반응형

# 코틀린의 함수 문법

함수는 기본적으로 매개 변수를 받아 비즈니스 로직을 수행하고 이에 대한 결과 값을 반환 하는 구조로 되어 있습니다. 

fun 함수명(매개변수) : 반환타입 {
   비즈니스 로직 ... 
}

A. 매개 변수와 반환 타입이 없는 기본 함수

fun main () {
  test()
}

fun test() {
  println("Test 함수를 수행합니다.")
}

----- 출력 -----
>> Test 함수를 수행합니다.
  • 매개 변수가 없는 test라는 함수를 정의 하였다.
  • test함수는 별도의 반환 값이 없으며 출력문을 수행 후 끝나는 함수이다. 
  • main 함수에서 test함수를 호출 하여 정의해둔 출력문이 찍히고 프로그램이 종료된다. 

B. 매개 변수가 존재하는 함수

  • 매개 변수란 함수가 호출 될 때 함수를 호출 한 곳에서 전달 되는 값을 의미한다. 
  • kotlin에서는 매개 변수를 "변수 이름:변수의 자료형"으로 정의한다. 
fun main() {
  test(1, "나는 두 번째 매개 변수")
}

fun test(a:Int, b:String) {
  println("첫 번 째 매개 변수 : $a")
  println("$b")
}

---- 출력 ----
>> 첫 번 째 매개 변수 : 1
>> 나는 두 번째 매개 변수
  • 매개 변수를 정의 할 때 매개 변수에 기본 값을 설정 할 수 있다. 
  • 기본 값을 설정하는 경우 함수를 호출 할 때 값을 전달하지 않으면 기본 값으로 매개 변수가 설정 된다. 
  • 함수를 호출 할 때 특정 매개 변수에만 값을 지정 할 수 있다. 
fun main() {
  test(0,100)
  test(200)
  test(b = 300)
}

fun test(a:Int=99, b:Int=1) {
   println("$a, $b")
}

--- 출력 ---
>> 0, 100
>> 200, 1
>> 99, 300

C. 반환 타입이 존재하는 함수

  • 함수 내에서 처리된 결과를 반환 받아 처리하는 경우 반환 타입을 명시할 수 있다.
  • 반환하고자 하는 결과 값을 함수 내에서 return을 통해 명시 해준다. 
fun main() {
  val result = test(1,2)
  println("$result")
}

fun test(a:Int, b:Int) : Int {
  return (a+b) * 100
}

--- 출력 ---
>> 300

D. 지역 함수

  • 함수내에 함수를 정의할 수 있다. 이렇게 정의 된 함수를 지역 함수라고 한다. 
  • 지역 함수는 이를 정의한 함수 내에서만 사용 할 수 있다. 
fun main() {
  test_main() // 수행 가능 
  test_sub() // 수행 불가능 - 지역함수이므로 test_main()내에서만 수행 가능 
}

fun test_main() {
  println("test 함수의 Main")
  
  fun test_sub() { // 지역 함수 
     println(:test 함수의 Sub")
  }
  
  test_sub()
}
반응형

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

[Kotlin] 기본 문법 (주석, 출력, 변수)  (0) 2022.04.24