Tag: Kotlin in Action

애노테이션과 리플렉션

애노테이션 선언과 사용애노테이션 적용코틀린 애노테이션 적용은 자바와 매우 비슷하다. 12@Deprecated("Use removeAt(index) instead", ReplaceWith("removeAt(index)"))fun remove(index: Int) { ... } 애노테이션에 인자로는 원시 타

코틀린의 제네릭스

코틀린의 제네릭스는 자바와 비슷한 점이 많다. 자바와 다른 부분도 많으니 이 점을 살펴보자! 제네릭 타입 파라미터코틀린의 제네릭 타입 파라미터는 자바와 매우 비슷하지만 몇 가지 새로운 기능에 대해 배워보자. 타입 파라미터 제약코틀린은 타입 파라미터 제한으로 클래스나 함수에 사용할 수 있는 타입 인자를 제한할 수 있다. 1fun <T: Number>

고차 함수(파라미터와 반환 값으로 람다 사용)

고차 함수고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수다. 코틀린의 고차 함수가 인자나 반환값으로 함수를 사용하기 위해서는 함수 타입이 필요하다. 함수 타입자바에서 람다 식을 매개변수나 반환값으로 사용하기 위해서는 함수형 인터페이스를 사용했다. 코틀린에서는 함수 타입이 존재한다. 12val sum: (Int, Int) -> Int = &

연산자 오버로딩과 기타 관례

산술 연산자 오버로딩코틀린에서 어떤 언어 기능과 미리 정해진 이름의 함수를 연결해주는 기법을 코틀린에서 관례라고 부른다.코틀린에서 관례를 사용하는 가장 단순한 예는 산술 연산자다. 기존 자바에서는 원시 타입과 문자열 정도에 산술 연산자를 쓸 수 있다. 하지만 관례를 적절히 사용하면 다른 클래스에도 산술 연산자를 쓸 수 있다. 이항 산술 연산 오버로딩1234

코틀린 타입 시스템

널 가능성널이 될 수 있는 타입어떤 타입이든 타입뒤에 ?를 붙이면 그 타입의 변수나 프로퍼티에 null 참조를 저장할 수 있다. 널 가능성이 있는 타입은 호출 가능한 메서드가 제한된다. 또한 파라미터에 널 가능성이 없는 타입이 선언된 경우 널 가능성이 있는 타입은 인자로 전달할 수 없다. 널 가능성이 있는 타입은 널 체크 이후 널 가능성이 없는 타입처럼 사

람다로 프로그래밍

람다 식과 멤버 참조람다 식의 문법코틀린의 람다 식은 항상 중괄호로 둘러 쌓여 있다. 그리고 인자 목록을 괄호로 싸지 않는다. 람다를 변수에 저장하고 함수처럼 사용할 수 있다. 123val sum = {x: Int, y: Int -> x + y}println(sum(1, 2)) 실행 시점에서 코틀린 람다 호출에는 아무 부가 비굥이 들

코틀린의 클래스, 객체, 인터페이스

요약코틀린 인터페이스open, final, abstact가시성 변경자중첩 클래스와 봉인된 클래스뻔하지 않은 생성자와 프로퍼티를 갖는 클래스 선언데이터 클래스와 클래스 위임object 키워드 클래스 계층 정의코틀린 인터페이스코틀린의 인터페이스는 자바와 매우 유사하다. 상태를 가질 수 없지만 구현된 메서드(마치 디폴트 메서드)를 가질 수 있다. 인터페이스를

코틀린 함수 정의와 호출

이번 포스트에서는 코틀린의 컬렉션, 문자열, 정규식 영역에서 함수 정의와 호출을 알아보자. 요약함수를 사용하기 쉽게 만들기확장 함수확장 프로퍼티가변인자, 중위 호출로컬 함수 코틀린에서 컬렉션 만들기코틀린에서는 {컬렉션 종류}Of(~) 이런 형태로 쉽게 컬렉션을 만들 수 있다. 123val set = hashSetOf(1, 2, 3)va

코틀린 기초

요약함수와 변수클래스와 프로퍼티enum과 whenwhile과 for 루프예외 처리 기본 요소: 함수와 변수함수123fun {함수이름}({매개변수 이름}: {매개변수 타입}) : {반환값 타입} { ...} 반환값이 없는 함수 예시 123fun main(arg