# Kotlin in action

코틀린 인 액션 11장
Domain Specific Language확장 함수 / 중위 호출 / 연산자 오버로딩 / 관례 / 수신객체지정 람다.함수의 인자는 1개 여야 되고. infix 키워드가 있어야 된다.코틀린 큐칙을 읽고 유지하며 이해하기 쉬운 코드를 만들기위한 권장 사례 지침?함수 속

코틀린 인 액션 9장
실체화한 파라미터 , 선언지점 변성에 대해 소개실체화한 타입 파라미터 사용? 타입 인자로 쓰인 구체적인 타입을 실행 시점에 알 수 있다?제네릭 타입 사용시 타입을 일반화되어 재사용성을 높이지만사용시점에서 구체적인 타입을 알수 없다.이 때 실체화한 타입 파라미터를 사용해

코틀린 인 액션 8장
람다를 인자로 받거나 반환하는 고차 함수를 만드는 방법을 다룸람다를 인자로 받는 함수를 정의하려면? 타입을 어떻게 선언할지 알아 보자.함수타입을 정의하려면 -> 뒤에 반환 타입을 지정하면 됨.unit 타입 경우 생략해도 되지만 함수 타입! 을 선언할땐 반환타입 반드시
[Kotlin In Action] 1장 - 코틀린이란 무엇이며 왜 필요한가?
maxByOrNull : max 값을 가진 데이터 찾기minByOrNull : min 값을 가진 데이터 찾기람다식에서 it 을 사용할 경우 유일한 인자를 사용할 수 있다.엘비스연산자 라고 불리는 ?: 는 null 인경우 0을 반환하고 그렇지 않은경우 값을 반환한다코틀린

코틀린 인 액션 7장
언어의 기능과 미리 정해진 이름의 함수를 연결 기법을관례라고 함. (ex plus메서드 정의는 + 연산자 사용)관례를 사용하면 자바 코드를 수정하지 않아도 새로운 기능 추가 가능함.코틀린린은 관례에 의존 함.출력값 8원시 타입에만 산술 연산자 사용 가능 // int

Kotlin in Action 6장
NPE를 피할 수 있게 돕는 특성Null에 대한 접근 방법을 실행시점 -> 컴파일러 시점으로 옮김 (코틀린)미리 감지해서 예외를 줄인다!널 되는 타입 명시적 지원?프로퍼티나 변수에 null을 허용하는 방법?코틀린에선 함수작성시 함수가 널을 허용하나?실행 시점에 Null

Kotlin in Action 4장
코틀린 선언은 기본적으로 final , public 코틀린의 인터페이스는 프로퍼티 선언이 들어갈 수 있다코틀린의 내부클래스는 기본적으로 자바에서 정적 중첩클래스로 선언되 외부클래스 참조X이는 중첩 클래스가 외부 클래스의 인스턴스에 대한 참조를 갖지 않기 때문ineer
Kotlin in Action 3장
코틀린 컬렉션 만들기코틀린은 자신만의 컬렉션 기능을 제공하지않고 자바 컬렉션을 활용해 상호작용이 쉬움.last() , max() 기능으로 좀더 강력한 기능 있음함수를 호출할때 파라미터가 많은 경우 ?디폴트 파라미터를 설정해줘서 생략가능하게 할 수 있다 미리 값을 셋팅하
[Kotlin in Action] part7_연산자 오버로딩과 기타 관례
자바에서는 원시 타입에 대해서만 산술 연산자를 사용하거나 String에 대해 +연산자를 사용할 수 있다. 코틀린은 이외의 클래스에서도 산술 연산자를 사용하는 것을 허용하고 있다. 어떻게 클래스에 대해 일반 산술 연산자를 정의할 수 있을까.Point 클래스에서 두 점을
[Kotlin in Action] part6_코틀린 타입 시스템
코틀린은 널이 될 수 있는 타입을 명시적으로 지원한다는 점이 특징이다. 널이 될 수 있는 타입 == 프로퍼티나 변수에 null을 허용null을 허용하는 인자를 받을 수 있게 하려면 타입 이름 뒤에 ?를 명시한다.String은 문자열만 인자로 받을 수 있는 타입이지만,S
[Kotlin in Action] part5_람다로 프로그래밍
람다 식? 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각을 뜻한다. 람다식을 사용하면 함수를 선언할 필요가 없고 코드 블록을 직접 함수의 인자로 전달할 수 있다.코드가 더욱 간결해지는 것이다.자바에서 무명 내부 클래스로 리스너를 구현하는 코드이다.아래는 코틀린에
[Kotlin in Action] part4_클래스, 객체, 인터페이스
코틀린 인터페이스 안에는 추상 메서드뿐 아니라 구현이 있는 메서드도 정의할 수 있다.이 인터페이스는 구현되어 있지 않은 click() 추상 메서드를 정의한다. 이 인터페이스를 구현하는클래스는 click()에 대한 구현을 해야한다.코틀린에서는 \[ 클래스 이름 : 인터페
[Kotlin in Action] part3_Defining and calling functions
코틀린은 자체 컬렉션이 없고 표준 자바 컬렉션을 사용한다. 표준 자바 컬렉션을 사용하는 것이 자바 코드와 상호작용하기가 더 수월하기 때문이다. 코틀린 컬렉션이 자바 컬렉션과 완전히 동일하지만 코틀린에서는 더 많이 활용할 수 있다.예를 들어, 리스트의 마지막 요소를 찾거
[Kotlin in Action] part1_Kotlin: what and why
What is Kotlin : 자바 플랫폼을 겨냥해 새롭게 등장한 프로그래밍 언어. 현재 자바가 사용되는 거의 모든 곳에 사용할 수 있다. 코틀린의 특징을 볼 수 있는 예시.

[Kotlin in Action] 11. DSL 만들기
11장에서는 영역 특화 언어 DSL을 사용해 표현력이좋고 코틀린다운 API를 설계하는 방법을 알아본다.코틀린 DSL 설계는 코틀린 언어의 여러 특성을 활용한다.첫 번재 특성은 5장에서 간략하게 살펴본 수신 객체 지정 람다다. 수신 객체 지정 람다를 사용하면 코드 블록에

[Kotlin in Action] 10. 애노테이션과 리플렉션
지금까지 클래스와 함수를 사용하는 여러 코틀린 특성을 살펴봤다.하지만 그 모든 것들은 함수나 클래스 이름을 소스코드에서 정확히 알고 있어야만 사용할 수 있는 기능이었다.어떤 함수를 호출하려면 그 함수가 정의된 클래스의 이름과 함수이름, 파라미터 이름 등을 알아야만 했다

[Kotlin in Action] 9. 제네릭스
제네릭스를 사용하면 타입 파라미터를 받는 타입을 정의할 수 있다. 제네릭 타입의 인스턴스를 만들려면 타입 파라미터를 구체적인 타입 인자로 치환해야 한다.타입 파라미터를 사용하면 "이 변수는 리스트다" 라고 말하는 대신 정확하게 "이 변수는 문자열을 담는 리스트다"라고

[Kotlin in Action] 8. 고차 함수: 파라미터와 반환 값으로 람다 사용
고차 함수 정의 고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수다. 특히 코틀린에서는 람다나 함수 참조를 사용해 함수를 값으로 표현할 수 있다. > 따라서 고차 함수는 람다나 함수 참조를 인자로 넘길 수 있거나 람다나 함수 참조를 반환하는 함수다. 1.

[Kotlin in Action] 7. 연산자 오버로딩과 기타 관례
6장까지는 코틀린을 코틀린답게 쓰는 방법을 알아봤다. 코틀린의 특성을 알고, 코드를 이해하고, 활용할 수 있도록 말이다. 6장까지를 잘 마쳤다면 코틀린을 기존 라이브러리나 API와 함께 사용할 수 있게 되었을 것이다. 7장부터는 지금까지 익힌 코틀린을 활용해 API를