[코틀린 스터디 07] 0715

ssook·2021년 7월 14일
0

✅ 람다식의 선언과 할당

  • 일반변수에 람다식 할당 : {람다에 사용할 매개변수 -> 할당할 식}
var multi = { a: Int, b: Int -> a*b}
  • 아니면, 아래 예시처럼 식 내부 매개변수의 자료형을 생략하고 식 앞에 선언 자료형을 명시해도 됨
var multi(a:Int, b:Int) -> Int = { a,b -> a*b }
  • 변수 안에 익명함수를 정의하였기 때문에, 함수처럼 사용 가능함. 변수 뿐만 아니라 함수의 인자나 반환값에도 사용 가능함.
multi(10,20)

✅ 람다식의 다양한 표현 방법

  • 표현식이 2줄 이상일 때
var multi2:(Int, Int) -> Int = {x:Int, y:Int
-> println("x*y")}
	x*y //마지막 표현식이 반환됨. 만약 해당 식이 없을 경우 반환값이 없으므로 Unit이라는 자료형을 표기
  • 자료형을 생략할 때
  1. 생략 없는 전체 표현
var multi:(Int, Int) -> Int = { a: Int, b: Int -> a*b}
  1. 선언 자료형 생략
var multi = { a: Int, b: Int -> a*b}
  1. 람다식 매개변수 자료형의 생략
var multi:(Int,Int) -> Int = { a: Int, b: Int -> a*b}

✅ 반환 자료형이 없는 표현

var love: () -> Unit = {println("Eiji")}
  • 인자 자체가 존재하지 않으면 선언 자료형을 비어놓게 할 수 있음. 또한 표현식(->) 역시 지울 수 있음.

✅ 람다식 안에 또 다른 람다식

var nestedLambda: ()-> ()->Unit = {{println("nested")}}
  • 첫번째 람다식 안에 다른 람다식이 들어있는 형태
  • () - > 첫번째 람다 () -> 두번째 람다식
profile
개발자에서, IT Business 담당자로. BrSE 업무를 수행하고 있습니다.

0개의 댓글