람다란 ? 람다식 (lambda expression) 은 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각 이다. 람다를 사용하면, 공통 코드 구조를 라이브러리화 하기 쉽다. 코틀린 표준 라이브러리는 람다를 아주 많이 사용한다. 람다 소개 - 코드 블록을 함수 인자로 넘기기 자바에서는 익병 내부 클래스를 통해 코드를 함수에 넘기거나 변수에 저장하는 방식을 사용했다. - 클래스를 선언하고, 클래스를 인스턴스화 해서 함수에 넘기는 방법을 채용 - 이는 매우 번거로운 일이다. 함수형 프로그래밍에서는 함수를 값 처럼 다룰수 있는것이 핵심 - 함수를 직접 다른 함수에 전달할 수 있다. `java` button.setOnClickListener(new OnClickLisntener() { @Override pu..
코틀린 인터페이스 코틀린의 인터페이스는 Java8의 인터페이스와 유사하다. 구현을 가지는 메소드가 존재할 수 있으며, 인터페이스를 구현하는 클래스에서 메소드를 구현할때 override 변경자를 사용해 주어야한다. (이는 자바의 @Override 애노테이션과 비슷하다.) 자바와 달리 반드시 사용해야 한다. interface Clickable { fun click() fun showOff() = println("I'm clickable!") } class Button: Clickable { override fun click() = println("I was Clicked") } fun main(args: Array) { Button().click() } 만약 둘 이상의 기본 구현이 존재하는 경우, 구현 클래..
코틀린에서 컬렉션 만들기 코틀린에서는 다양한 컬렉션을 지원한다. 코틀린 고유의 컬렉션이 아닌 자바 표준 컬렉션을 사용한다. 다음은 코틀린에서 컬렉션을 사용하는 샘플 중 하나이다. /** * setOf 외에도 아래와 같은 방법으로 다양한 컬렉션을 생성할 수 있다. * map을 생성할때는 to 를 사용하는데 이는 키워드가 아닌 일반 함수이다. * 코틀린은 코틀린의 컬렉션을 사용하지않고 표준 자바 컬렉션을 사용한다. * 이는 자바와 상호작업하게 훨씬 쉽게 때문이다. */ val set = hashSetOf(1, 7, 53) val list = arrayListOf(1 , 7, 53) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") /** ..
함수와 변수 코틀린 함수는 아래와 같은 모양새를 하고 있다. fun main (args: Array) { println("Hello World") } 함수 선언시 fun 키워드를 사용한다. 파라미터 명 뒤에 해당 파라미터의 타입을 명시한다. 함수를 최상위 수준에 정의할 수 있다. 배열도 일반 클래스와 동일하게 취급하며, 자바와 달리 배열 처리 문법이 따로 존재하지 않는다. 코틀린 표준 라이브러리는 자바 표준라이브러리를 간결하게 사용가능하게 감싼 Wrapper 를 제공한다. 문장 마지막에 세미콜론을 붙이지 않아도 된다. 코틀린 함수의 기본 구조 코틀린 함수는 아래와 같은 구조를 가지고 있다. // 함수명 파라미터 목록 반환타입 fun max(a: Int, b: Int): Int { return if (a ..