📱Kotlin/[GDSC] Kotlin in Action 스터디

우리는 챕터 5에서 람다에 대해 소개하였다. 람다는 추상화를 하기 위한 파워풀한 도구이며, 이러한 파워는 컬렉션이나 라이브러리에만 한정된 것이 아니다. 이번 챕터에서는 고차 함수를 만드는 법을 배우고, 람다를 인수 또는 리턴값으로 사용하는 법을 배우고자 한다. 또한 inline 함수에 대해서 배우고자 한다. #고차 함수 정의 고차 함수는 다음과 같다: 다른 함수를 인자로 받거나 리턴하는 함수 예를 들어, 아래의 filter 함수는 서술부에 함수를 가지고 있기 때문에 이를 고차 함수라고 할 수 있다. list.filter{ x > 0 } #함수 타입 람다 인자의 타입은 아래와 같이 선언한다. (파라미터 타입, ...) -> 반환 타입 예를 들어, sum 함수는 Int 타입인 파라미터 2개(x, y)를 받아..
코틀린에서 관례(convention)를 사용하는 하나의 예는 산술 연산자다. 자바에서는 원시 타입에 대해서만 산술 연산자를 사용할 수 있고, 추가로 String에 대해 + 연산자를 사용할 수 있다. 이러한 기술들을 convention이라고 하는데, 이 장에서는 다양한 convention과 그들을 사용하는 예를 보려고 한다. convention을 사용함으로써 이미 존재하는 자바 클래스를 수정하지 않고도 확장하는 것이 가능하다. #산술 연산자 오버로딩 #이항 산술 연산 오버로딩 data class Point(val x: Int, val y: Int) { operator fun plus(other: Point): Point { return Point(x + other.x, y + other.y) } } >>>..
그동안은 코틀린의 문법 중 넓은 범위의 것들을 살펴보았다. 이제 가장 중요한 부분을 배워보자: 바로 타입 시스템이다. 코틀린에서는 새롭게 만들어진 기능, 즉 nullable 타입과 read-only collection 등을 지원한다. #Nullability 코틀린 타입 시스템에서는 자바에서 흔히 볼 수 있는 java.lang.NullPointerException를 피할 수 있기 위해서 컴파일 시점에 null 에러를 파악할 수 있도록 명시적으로 지원한다. /* Java */ int strLen(String s) { return s.length(); } 자바에서는 위와 같은 함수에서 String이 null일 경우 NullPointerException 에러를 만들지만, 코틀린의 경우 String 타입이 반드시..
람다는 다른 함수에 넘길 수 있는 작은 코드 조각을 의미한다. 람다를 통해 공통 코드 구조를 라이브러리 함수로 뽑아낼 수 있는데, 심지어 처음부터 람다를 고려하지 않고 만든 라이브러리도 사용 가능하다. 이제부터 람다로 프로그래밍하는 법을 알아보도록 하자. #람다 코틀린에서는 람다 식을 통해 함수를 선언하는 대신 코드 블록을 직접 함수의 인자로 전달할 수 있다. 다음과 같이 자바는 무명 내부 클래스를 선언하기 때문에 코드가 번잡스러워진다. /* Java */ button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { //무명 내부 클래스의 선언 /*클릭 시 수행할 동작 */ } }); /* Kotli..
해당 챕터에서는 코틀린에서 class를 다루는 법에 대해 더 깊은 이해를 가질 것이다. 코틀린의 class와 interface는 자바의 그것과 약간은 다르다. 이제부터 그 차이점을 알아보도록 하자. #Interface 코틀린의 인터페이스는 추상 메소드의 구현을 필요로 한다는 점에서 자바 8의 것과 비슷한데, 단지 상태를 가지고 있지 않다는 점이 다르다. //인터페이스 interface Clickable { fun click() } //인터페이스 구현 class Button : Clickable { override fun click() = println("I was clicked") } >>> Button().click() I was clicked 또한 코틀린에서는 인터페이스를 구현하기 위해서 implem..
Researcher Cathy
'📱Kotlin/[GDSC] Kotlin in Action 스터디' 카테고리의 글 목록 (4 Page)