글

라벨이 람다인 게시물 표시

코틀린 (Kotlin) 람다 문법

코틀린 람다 문법 코틀린 람다는 자바의 람다와 비슷하지만 문법이 조금 다릅니다. { x: Int, y:Int -> x+y} 처럼 블럭({..}) 안에 파라메터와 -> 를 구분자로해서 본문을 작성할 수 있습니다. 그리고 람다를 변수에 저장할 수 있습니다. val sum = { x: Int, y:Int -> x+y} //람다식을 변수에 저장 //사용 sum(1,2) //풀어쓴 람다 people. maxBy ({ p : Person -> p.age}) //맨 뒤에 있는 인자가 람다 식인경우 밖으로 뺄 수 있다 people. maxBy () {     p : Person -> p.age } //람다가 유일한 인자인경우 괄호 생략 가능 people. maxBy {     p : Person -> p.age } 아래 코드는 파라메터가 두개 이상이고 마지막 하나만 람다인 경우입니다. people. joinToString (" ") { p: Person -> p.name } //마지막 람다를 블럭밖으로 뺌 람다 파라미터에서 타입을 제거할 수 있습니다. //파라미터 타입 명시 people. maxBy { p:Person -> p.age } //파라미터 타입 추론(컴파일러가 추론) people. maxBy { p -> p.age } 람다의 파라미터가 하나이고 컴파일러가 타입을 추론할 수 있는 경우 it 을 사용 할 수 있습니다. //it 사용 : 람다의 파라미터가 하나인경우 컴파일러가 추론 가능 //중첩된 람다에서는 it 보다는 파라미터를 명시하는 것이 좋다 people. maxBy { it .age } 람다를 변수에 저장할 때는 타입을 추론할 수 없기때문에 타입을 명시해야 됩니다. //람다를 변수에 저장할때는 추론할수 없기때문에 파라미터를 명시한다 val getAge = { p:Person ->...