Over the limit

[Kotiln] Kotiln 기본 문법4 - 함수 본문

Framework/Android Studio

[Kotiln] Kotiln 기본 문법4 - 함수

ellapk 2021. 7. 10. 17:19

코틀린은 다중 패러다임 언어

함수형 프로그래밍 (FP : Functional Programming)

객체 지향 프로그래밍 (OOP : Object-Oriented Programming)

 

함수형 프로그래밍 

-코드 간략, 테스트나 재 사용성 증가

-순수 함수, 람다식, 고차 함수를 사용해 구성

 

 

 

일반적 선언

fun sum(a:Int, b:Int) : Int{
return a+b
}

간략한 선언

fum sum(a: Int, b : Innt):Int = a+b

 

 

 

아래 예시를 통해 함수를 선언하고 사용하는 것을 살펴보자.

fun sum(a:Int, b:Int):Int 로 선언하고,

 

result1 or 2 의 형을 먼저 선언 해준 후,

sum(3,2)와 같이 사용하면 된다.

fun sum(a:Int, b:Int):Int{
var sum = a+b
return sum
}

fun main(){
val result1:Int
val result2:Int

result1=sum(3,2)
result2=sum(6,7)

println(result1)

}

 

 

이번엔 람다식에 관하여 언급해보자

 

람다식(Lambda Expression)

 

특징

  1. 람다식은{}로 감싸며 fun 예약어를 사용하지 않는다.
  2. {}안 ->의 왼쪽은 파라미터, 오른쪽은 함수의 내용이다.
  3. ->오른쪽 문장이 여러개면 세미콜론(;)으로 구분한다.
  4. 내용 중 마지막 문장은 반환값(return)이다.
  5. 이름 없이 사용 및 실행이 가능하다.

 

{x,y -> x+y} //람다식의 예

 

람다식의 이용

람다식은 고차함수에서 인자로 넘기거나 결과값으로 반환 등을 할 수 있음

변수에 람다식 적용

fun main(){
var result:Int
    val multi={x:Int, y:Int->x*y} //일반 변수에 람다식 할당
    
    result = multi(10,20) //람다식이 할당된 변수는 함수처럼 사용 가능
    println(result)
}

 

고차함수란 일반 함수를 인자나 반환값으로 사용하는 함수인데, 예시를 통해 이해해보자

fun main(){
println(highFunc({x,y->x+y},10,20)) //람다식 함수를 인자로 넘김
}

fun highFunc(sum : (Int, Int)->Int, a:Int, b:Int):Int = sum(a,b) //sum 매개변수는 함수