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!*/
매개변수가 기본값으로 설정되어있지만 새롭게 다른 매개변수를 넣어서 호출도 가능하다