[Kotlin] 함수 만들기 및 사용하기

hxeyexn·2023년 3월 17일

[Kotlin]

목록 보기
3/6
post-thumbnail

함수 정의 및 호출하기

이점

  • 재사용 가능한 코드
    : 두 번 이상 사용해야 하는 코드를 복사하여 붙여넣는 대신 필요할 때마다 함수를 호출할 수 있음

  • 가독성
    : 함수가 한 가지 특정 작업만 실행하도록 하면 다른 개발자와 팀원은 물론 향후 본인도 코드가 하는 작업을 정확히 파악할 수 있음

함수 정의 문법

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!


함수에서 값 반환하기

Unit 유형

  • 함수가 값을 반환하지 않음을 의미
  • 값을 반환하지 않는 함수는 암시적으로 Unit을 반환
  • 다른 언어의 void 반환 유형과 동일
  • Kotlin에서는 Unit 반환 유형을 지정하는 것은 선택 사항
  • 아무것도 반환하지 않거나 Unit을 반환하는 함수의 경우 return문이 필요하지 않음
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() {
    birthdayGreeting()
}

fun birthdayGreeting() : String {
    println("Happy Birthday, Rover!")
    println("You are now 5 years old!")
}
➡️ A 'return' expression required in a function with a block body ('{...}') 
  • String을 반환할 때는 return문을 포함해야 함
fun main() {
//    val greeting = birthdayGreeting()
//    println(greeting)
    println(birthdayGreeting())		
}
       
fun birthdayGreeting() {
    //하나의 함수는 하나의 문자열만 반환할 수 있으므로 먼저 각각의 변수를 만듬
    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!


함수에 매개변수 추가하기

  • 변수를 다른 함수에 데이터로 전달하여 이 함수 내에서 액세스할 수 있음
  • 매개변수는 함수 이름 뒤에 오는 괄호 안에 선언
  • 하나의 매개변수는 변수 이름과 데이터 유형으로 구성
  • 변수 이름과 데이터 유형은 콜론과 공백으로 구분
  • 여러 개의 매개변수는 쉼표로 구분
fun main() {
    println(birthdayGreeting())
}

fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}
➡️ No value passed for parameter 'name'
   // 매개변수를 선언했으므로 birthdayGreeting()을 호출할 때 String을 전달해야 함
fun main() {
    println(birthdayGreeting("Rover"))
}

fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}
➡️ Happy Birthday, Rover!
   You are now 5 years old!
fun main() {
    println(birthdayGreeting("Rover"))
    //birthdayGreeting()은 매개변수를 사용하므로 로버가 아닌 다른 이름으로 호출할 수 있음
    println(birthdayGreeting("Rex"))
}

fun birthdayGreeting(name: String): String {
    val nameGreeting = "Happy Birthday, $name!"
    val ageGreeting = "You are now 5 years old!"
    return "$nameGreeting\n$ageGreeting"
}
➡️ Happy Birthday, Rover!
   You are now 5 years old!
   Happy Birthday, Rex!
   You are now 5 years old!
   //birthdayGreeting() 전달된 인수에 따라 출력이 달라짐  

매개변수 vs 인수

  • 종종 같은 의미로 사용되곤 하지만 서로 다른 것을 가리킴
  • 함수를 정의할 때는 함수에 전달할 수 있는 매개변수를 정의
  • 함수를 호출할 때는 매개변수를 위한 인수를 전달
  • 매개변수는 함수가 액세스할 수 있는 변수
    ex) name 변수
  • 인수는 사용자가 실제로 전달하는 값
    ex) "Rover" 문자열

Kotlin에서는 매개변수를 변경 불가

  • 함수가 매개변수에 전달된 값을 변경할 수 있는 자바와 같은 다른 언어와 달리, Kotlin에서는 매개변수를 변경할 수 없음
  • 함수 본문 안에서 매개변수에 다른 값을 할당할 수 없음


여러 매개변수를 갖는 함수

함수 서명

  • 함수의 이름, 입력, 출력을 통칭
  • 함수에 전달할 수 있는 데이터 유형과 예상되는 출력의 유형 등 함수 호출에 관해 알아야 하는 모든 것을 알려줌
//쉼표로 구분된 매개변수를 매개변수 목록이라고도 함
fun birthdayGreeting(name: String, age: Int): String

함수 문법 정리



이름이 지정된 인수

  • 함수를 호출할 때 매개변수 이름을 포함한 경우
  • 원하는 경우 매개변수의 이름을 지정할 수 있음
    ex) 여러 개의 매개변수를 갖는 함수를 호출하거나 인수를 다른 순서로 전달하려는 경우 매개변수의 이름을 지정할 수 있음
  • 명명된 인수를 사용하면 출력에 영향을 주지 않고 인수를 재정렬할 수 있음
println(birthdayGreeting(name = "Rex", age = 2))


기본값 인수

  • 함수 매개변수는 기본값 인수를 지정할 수도 있음
  • 특정 인수를 사용하여 함수를 호출하려는 경우 기본값 인수를 지정하면 됨
  • 함수를 호출할 때 기본값이 있는 인수는 생략할 수 있음, 생략하는 경우 기본값이 사용
  • 매개변수의 데이터 유형 뒤에 = 할당 연산자를 추가하고 원하는 값을 설정
fun main() {
    println(birthdayGreeting(age = 5))
    println(birthdayGreeting("Rex", 2))
}

fun birthdayGreeting(name: String = "Rover", age: Int): String {
    return "Happy Birthday, $name! You are now $age years old!"
}
➡️ Happy Birthday, Rover! You are now 5 years old!
   Happy Birthday, Rex! You are now 2 years old!
fun main() {
    println(birthdayGreeting(age = 5))
    println(birthdayGreeting(age = 2))
}

fun birthdayGreeting(name: String = "Rover", age: Int): String {
    return "Happy Birthday, $name! You are now $age years old!"
}
➡️ Happy Birthday, Rover! You are now 5 years old!
   Happy Birthday, Rover! You are now 2 years old!


📖 참고자료
Kotlin에서 함수 생성 및 사용

profile
Android Developer

0개의 댓글