본문 바로가기

Kotlin

(10)
Kotlin IN ACTION 6장 정리(코틀린 타입 시스템, 어떻게 코틀린은 null처리를 우아하게 할까?) null이 될 수 있는 타입과 null 처리 구문 null이 될 수 없는 타입의 장점 null이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 컴파일 시점에 검사하여 예외 발생의 가능성을 줄이는 특징을 갖습니다. //자바에서 하던 것 int (String str) { if(str == null) { throw new NumberFormatException("null"); } //...기타 작업 } 자바에서는 메소드의 파라미터로 레퍼런스 타입이 오면 대부분 null인지 아닌지 고민하고 null처리를 별도로 해야할지 고민했습니다. //코틀린에서 null을 다루는 방법 fun parseInt(str: String):Int { // 바로 작업 } 코틀린에서 null이 될 수 없는 타입과 null이 ..
Kotlin 공식 Example로 공부하기 - Collections#2(associateBy, groupBy, partition, flatMap, sorted, withDefault, zip, getOrElse) Collections (2) 저는 전문 번역가도 아니고, 의역을 넘어 오역, 심지어 그냥 제가 읽고 싶은대로 읽은 내용이 있을 수 있습니다. 개인 공부를 한 것을 포스트로 남기고 있으며 틀린 부분이 있으면 지적해주시면 수정하도록 하겠습니다. 원문 : https://play.kotlinlang.org/byExample/05_Collections/01_List Collections 부분은 꽤 길어서 나누어 작성했습니다. associateBy, groupBy associateBy 함수와 groupBy 함수는 지정된 키(Key)에 의해 인덱싱된 컬렉션의 원소로부터 Map을 만듭니다. 키(Key)는 KeySelector 파라미터에서 정의됩니다. 뿐만 아니라 옵션으로 valueSelector 를 정의할 수 있습니다..
Kotlin IN ACTION 2장 정리(코틀린 기초 : 변수, 함수, 클래스, enum, 프로퍼티, for, while, is, exception) 2장 코틀린 기초 변수, 함수, 클래스, ... 변수 선언 방법 val question = "코틀린 기초는 몇 장인가" val answer = 2 //val answer:Int = 2 타입을 적어도 되고 실제 값에서 추론이 가능하면 생략해도 됨 val pi = 3.14 //Double 추론 val vs var val : 값을 뜻하는 value에서 따온 것으로, 불변(Immutable)값을 저장하는 변수다. 자바의 final 처럼 초기화하고 나면 다른 값으로 재대입이 불가능하다. var : 변수를 뜻하는 variable에서 따온 것으로, 가변(mutable)값을 저장하는 변수다. 재대입이 가능하다. val languages = arrayListOf("Java") languages.add("Kotlin") ..
Kotlin 공식 Example로 공부하기 - Collections#1(List, Set, Map, filter, map, any, all, none, first, last, lastOrNull,firstOrNull, find, findLast, count) Collections (1) 저는 전문 번역가도 아니고, 의역을 넘어 오역, 심지어 그냥 제가 읽고 싶은대로 읽은 내용이 있을 수 있습니다. 개인 공부를 한 것을 포스트로 남기고 있으며 틀린 부분이 있으면 지적해주시면 수정하도록 하겠습니다. 원문 : https://play.kotlinlang.org/byExample/05_Collections/01_List Collections 부분은 꽤 길어서 나누어 작성했습니다. List 리스트(List)는 순서가 있는 아이템의 컬렉션입니다. 코틀린에서 리스트는 둘 중에 하나가 될 수 있습니다. (mutable(MutableList), read-only(List)) 리스트를 생성하기 위해서 표준 라이브러리 함수를 사용합니다. listOf : 읽기 전용 리스트 muta..
Kotlin IN ACTION 1장 정리(코틀린의 철학, 코틀린의 특징, 코틀린 공부 로드맵) 오프라인 스터디에서 "Kotlin IN ACTION"이라는 책을 선정하여 학습하는 중에 정리의 필요성을 느꼈고, 책을 읽는 것만으로 내 것이 되지 않는 것 같다고 생각하여 아주 작은 미니 프로젝트를 만들어봐야 겠다는 생각을 했습니다. 1장 코틀린이란 무엇이며, 왜 필요한가? 코틀린의 철학 *참고* 개인적인 해석이 포함되어 있습니다. "자바(Java)와의 상호운용성을 고려하고 실용성을 갖춘 언어를 개발한다." 코틀린이라는 언어의 목적은 다른 언어처럼 임베디드 환경에 최적화된 언어, 인공 지능 개발 언어, 성능 최적화된 언어, ... 같은 목적이 아니라, 딱 자바와의 상호운용에 문제가 없으면서도 실용성을 갖추는게 목적입니다. 코틀린이 실용성 을 갖췄다는 건 무엇일까요? 다음과 같은 개선으로 애플리케이션 개발..
Kotlin 공식 Example로 공부하기 - Functional(Higher-Order Functions, lambda, extension functions) Functional 저는 전문 번역가도 아니고, 의역을 넘어 오역, 심지어 그냥 제가 읽고 싶은대로 읽은 내용이 있을 수 있습니다. 개인 공부를 한 것을 포스트로 남기고 있으며 틀린 부분이 있으면 지적해주시면 수정하도록 하겠습니다. 원문 : https://play.kotlinlang.org/byExample/04_functional/01_Higher-Order Functions Higher-Order Functions(고차 함수) 고차함수(Higher-Order function)는 다른 함수를 파라미터로 사용하거나 함수를 반환하는 함수입니다. 함수를 함수의 파라미터로 쓸 때 fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int { // 1 r..
Kotlin 공식 Example로 공부하기 - Special Classes(data class, enum class, sealed class, object, companion object) Special Classes 저는 전문 번역가도 아니고, 의역을 넘어 오역, 심지어 그냥 제가 읽고 싶은대로 읽은 내용이 있을 수 있습니다. 개인 공부를 한 것을 포스트로 남기고 있으며 틀린 부분이 있으면 지적해주시면 수정하도록 하겠습니다. 원문 : https://play.kotlinlang.org/byExample/03_special_classes/01_Data classes Data Classes (데이터 클래스) Data Class를 사용하면 값을 저장하는 클래스(ex. DTO, VO)를 쉽게 만들 수 있습니다. Data Class는 자동으로 메소드들을 제공합니다. 주 생성자에 선언된 모든 프로퍼티를 기준으로 컴파일러가 자동으로 생성해줍니다. equals() / hashCode() pair toSt..
Kotlin 공식 Examples로 공부하기 - Control Flow (When, Ranges, Expression, Statement, Loops, Iterator) 제어문(Control Flow) 저는 전문 번역가도 아니고, 의역을 넘어 오역, 심지어 그냥 제가 읽고 싶은대로 읽은 내용이 있을 수 있습니다. 개인 공부를 한 것을 포스트로 남기고 있으며 틀린 부분이 있으면 지적해주시면 수정하도록 하겠습니다. 원문 : https://play.kotlinlang.org/byExample/02_control_flow/01_When When 널리 사용하는 switch 문(statement) 대신에 코틀린은 조금 더 유연하고 깔끔한 when 문(construction)을 제공합니다. when 문은 statement 와 expression 으로 사용될 수 있습니다. When Statement fun main() { cases("Hello") cases(1) cases(0L) c..