1. 함수를 만드는 이유

  • 재사용성
  • 가독성

2. 함수 문법

함수 정의는 fun 키워드로 시작하고 함수이름과 괄호,중괄호로 이루어져있음

 

3. main 에서 외부함수 호출하기

fun main() {
    birthdayGreeting()
}

fun birthdayGreeting() {
    println("Happy Birthday, Rover!")
    println("You are now 5 years old!")
}

/*결과 "Happy Birthday, Rover!
        You are now 5 years old!"*/

 

3. 함수에서 값 반환하기

return 타입에는 String,Int 같은 변수타입이 들어갈수있다.

 

4.  Unit 유형

값의 반환유형을 지정하지않은경우 기본적으로 Unit이 된다.

fun main() {
    birthdayGreeting()
}

fun birthdayGreeting(): Unit {
    println("Happy Birthday, Rover!")
    println("You are now 5 years old!")
}

/* 결과 "Happy Birthday, Rover!
         You are now 5 years old!"*/

 

String을 반환하고싶다면

fun main() {
    println(birthdayGreeting())
}
fun birthdayGreeting(): String {
    val nameGreeting = "Happy Birthday, Rover!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}

/* 결과 "Happy Birthday, Rover!
         You are now 5 years old!"

Unit이 아닌 리턴타입을 지정할경우 return을 꼭 써야한다.

 

5. 함수에 매개변수 추가하기

파라미터 자리에 매개변수를 추가한다

fun main() {
    println(birthdayGreeting("수뱀"))
}
fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 25 years old!"
    return "$nameGreeting\n$ageGreeting"
}

/*결과 "Happy Birthday, 수뱀!
        You are now 5 years old! " */

함수 birthdayGreeting안에 "$name"에 필자의 이름인 "수뱀"이 들어가게된다

 

6. 여러 매개변수를 가지는 함수

매개변수를 여러개 넣고싶다면 파라미터 자리에 변수이름과 타입을 설정하여 여러개를 쓰면된다

fun main() {
    println(birthdayGreeting("수뱀",25))
}
fun birthdayGreeting(name: String,age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

/*결과 "Happy Birthday, 수뱀!
        You are now 25 years old!" */

 

7. 이름이 지정된 함수

함수를 호출할때 배개변수의 순서를 바꿔도 정상동작한다

fun main() {
    println(birthdayGreeting(name = "수뱀",age = 25))
    println(birthdayGreeting(age = 25,name = "수뱀"))
}
fun birthdayGreeting(name: String,age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

/* 결과 두 호출 모두 정상적으로 출력된다! */

 

8. 기본값 인수

매개변수를 기본값으로 두고 호출가능하다

fun main() {
    println(birthdayGreeting(age = 25))
    println(birthdayGreeting(name = "민지",age = 22))
}
fun birthdayGreeting(name: String = "수뱀",age: Int): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now $age years old!"
    return "$nameGreeting\n$ageGreeting"
}

/* 결과 Happy Birthday, 수뱀!
        You are now 25 years old!
        Happy Birthday, 민지!
        You are now 22 years old!*/

매개변수가 기본값으로 설정되어있지만 새롭게 다른 매개변수를 넣어서 호출도 가능하다