Kotlin in Action 2/e 서적을 읽으면서 정리하고자 쓴 글입니다.람다 식과 멤버 참조람다와 컬렉션코틀린은 람다를 보다 직관적으로 사용할 수 있으며, 간결한 코드를 작성할 수 있습니다.fun findTheOldest(peoples: List) { var maxAge = 0 for (person in peoples) { if (person.age > maxAge) { maxAge = person.age } } return maxAge}fun main() { val peoples = listOf(Person("A", 10), Person("B", 15)) println(findTheOlest(peoples)) // 15}..
Kotlin
Kotlin in Action 2/e 서적을 읽으면서 정리하고자 쓴 글입니다.코틀린의 클래스와 인터페이스는 설계 단계부터 안정성과 간결함을 중시하도록 설계되었습니다. 인터페이스 내에 프로퍼티 선언이 가능해 구현체에 특정 상태를 강제할 수 있으며, 자바와 달리 모든 선언이 기본적으로 `public`이면서 동시에 상속이 제한된 `final` 상태라 의도치 않은 확장을 방지합니다. 또한 중첩 클래스는 별도의 키워드 없이 선언할 경우 외부 클래스에 대한 참조를 갖지 않아 메모리 누수 위험을 줄여줍니다. 클래스를 data 즉, `data class`로 선언하면 컴파일러가 일부 표준 함수를 생성해 주며, `by` 키워드를 활용한 위임 기능을 제공함으로써 개발자가 반복적이고 번거로운 준비 코드를 직접 작성할 필요 없..
Kotlin in Action 2/e 서적을 읽으면서 정리하고자 쓴 글입니다.코틀린에서 컬렉션 만들기코틀린은 다음과 같이 컬렉션을 생성하는 함수를 제공합니다.또한 코틀린은 표준 자바 컬렉션 클래스를 사용하기 때문에 자바 코드와 상호작용하기가 훨씬 더 쉽습니다.즉, 자바 → 코틀린 또는 코틀린 → 자바 함수를 호출할 때 컬렉션을 서로 변환할 필요가 없습니다.fun main() { val set = setOf(1, 7, 10) val list = listOf(1, 10, 100) val map = mapOf(1 to "one", 7 to "seven", 10 to "ten") // ex) key=1, value="one" println(set.javaClass) // class ..
Kotlin in Action 2/e 서적을 읽으면서 정리하고자 쓴 글입니다.함수와 변수(Variables)Java, Kotlin 각각 `Hello, world` 출력 함수를 출력하면 다음과 같습니다.// Javapublic class Main { public static void main(String[] args) { System.out.println("Hello, world"); }}// Kotlinfun main(args: Array) { println("Hello, world")}함수 선언을 할 때 `fun` (파라미터 이름: 파라미터 타입) 키워드를 사용합니다.Java의 경우 메서드를 호출하기 위해 클래스를 선언 후 작성해야 하지만 Kotlin의 함수는 클래스 생성 없이 ..
Kotlin in Action 2/e 서적을 읽으면서 정리하고자 쓴 글입니다.왜 JetBrains는 Kotlin을 만들었는가JetBrains는 IntelliJ IDEA를 만든 회사로 내부 서비스와 툴 대부분 Java로 이루어져 있으며 다음과 같이 불편이 누적되었습니다.Java의 장황한 문법 (Boilerplate)안전하지 않는 Null 처리더 생산적이고 간결한 코드에 대한 실용적인 요구 증가 (모던한 방식)C#처럼 모던한 방식을 원했고, 기존 Java로 이뤄진 코드를 호환할 수 있는 언어를 찾아보았으나 그러한 언어가 없었습니다. 그렇게 JetBrains는 Java와 호환성이 좋고, 모던함을 갖추고자 실용적인 언어 Kotlin을 만들기로 결정합니다.더보기Kotlin은 코틀린 개발 팀이 대부분 살고 있는 러..