람다는 변수에 저장하거나 함수에 전달할 수 있는 작은 코드 블록을 말한다. 간소화된 형태의 함수라고도 볼 수 있다. 람다의 목적은 무엇일까? 무명 내부 클래스(익명 객체)의 불편함 개발을 하다보면 일련의 동작을 변수에 저장하거나 함수에 넘겨야하는 상황이 있다. 예를 들어, 어떤 이벤트가 발생하면 실행시킬 핸들러를 등록하거나, 자료 구조의 모든 원소에 같은...
람다는 값처럼 여기저기 전달할 수 있는 코드 블록이다. 변수에 저장할 수도 있지만, 대부분 함수에 인자로 넘길 때 그 자리에서 람다를 정의하는 경우가 대부분이다. 아래는 람다 식의 형태이다.코틀린의 람다는 중괄호로 둘러쌓여 있다. 파라미터와 본문으로 구성되어 있으며,
람다를 함수 안에서 정의하면 람다의 파라미터 뿐만 아니라 람다에 앞서 정의된 함수의 지역 변수
람다를 사용하면 원하는 동작을 정의하고 함수에 인자로 전달할 수 있다. 그런데 원하는 동작이 이미 함수로 정의되어 있으면 어떡할까?물론 그 함수를 호출하는 람다를 정의하면 되지만 그것은 함수 중복이다. 함수를 직접 넘길 순 없을까?가능하다. 왜냐면 코틀린은 함수를 값처
컬렉션 라이브러리는 람다를 기반으로 다양한 기능의 함수를 제공하고 있다. 컬렉션 함수를 잘 알아두면 컬렉션을 다룰 때 편하다. 대부분의 컬렉션 작업에 활용할 수 있으며 그로 인해 코드를 아주 간결하게 만들 수 있다. 필수 함수: filter, map filter와
컬렉션 함수를 사용하면 간결하고, 효율적이고, 이해하기 쉬운 코드를 만들 수 있다.또한, 컬렉션 함수는 아래처럼 연쇄 호출(method chaining)을 할 수 있다.하지만 단점이 없는 건 아니다. 연쇄 호출을 하면 매번 중간(임시) 컬렉션을 생성한다.위 예시에서 f
코틀린에서 람다를 활용하면 간결한 코드를 작성할 수 있다. 하지만 우리가 사용하는 많은 API는 자바로 작성되어 있다. 그리고 다행스럽게도 자바 API 호출에 여전히 람다를 사용할 수 있다.어떻게 그것이 가능할까?Button 클래스는 setOnClickListener
널 가능성(nullability)은 NullPointerException(NPE) 오류를 피하는데 도움이 되는 코틀린 타입 시스템의 특성이다.null이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 미리 null 문제를 감지하여 실행 도중의 NPE 발생 가
Safe cast (안전한 캐스트): as? 타입 캐스팅 연산자(as)는 대상 값을 지정한 타입으로 변환할 수 없을 경우 ClassCaseException를 발생시킨다. 코틀린은 이 문제에 safe cast라는 해법을 제공한다. safe cast 연산자 as?는 as