[Kotlin] 함수

PUJIN·2023년 6월 7일
0
post-thumbnail

함수


fun 함수명(매개변수) : 반환값 타입 {}

  • java 코드 변환
    → 클래스(파일이름) 내부의 static 메서드로 정의
    → 함수 밖에서 선언된 변수는 클래스(파일이름)의 static 변수로 정의

  • 매개변수 : 변수명 : 자료명

    • 함수 호출 시 매개변수로 값 전달
    • 함수의 매개변수는 타입 생략 불가능
    • 함수를 호출할 때 어떤 매개변수에 담을지 정할 수 있다.
    • 매개변수에 기본 값을 설정하여 선언한 경우 값을 전달하지 않았을 때 기본 값으로 설정
  testFun(100,200)  // a1 = 100, a2 = 200
  testFun()  // a1 = 1, a2 = 2
  testFun(100)  // a1 = 100, a2 = 2
  testFun(a2=200)  // a1 = 1, a2 = 200
  fun testFun(a1:Int = 1, a2:Int = 2){
      println("a1 : $a1")
      println("a2 : $a2")
  }
  • 반환 타입 : return
    • 매개변수 뒤에 반환할 값의 타입 작성
    • 반환 값이 있는 경우 : fun 함수명(매개변수) : 반환 타입 {}
    • 반환 값이 없는 경우 : fun 함수명(매개변수) : Unit {} or fun 함수명(매개변수) {}



오버로딩


매개변수의 형태(타입,개수)를 다르게 하같은 이름의 함수를 여러개 정의


test()  //test(매개변수 없음)
test(100)  //test(a1 : 100)
test(1.1)  //test(a1 : 1.1)
test(100,200)  //test(a1 : 100, a2 : 200)

fun test(){
    println("test(매개변수 없음)")
}
fun test(a1:Int){
    println("test(a1 : $a1)")
}
fun test(a1:Double){
    println("test(a1 : $a1)")
}
fun test(a1:Int, a2:Int){
    println("test(a1 : $a1, a2 : $a2)")
}



지역 함수


함수 내부에 만든 함수

  • 정의한 함수 내부에서만 사용 가능
fun test(){
    println("함수 호출")

    fun innerTest(){
        println("지역 함수 호출")
    }
    // 지역함수 호출
    innerTest()
}

0개의 댓글