모든 내용을 기록하기 보다는 기억해야할 필요가 있는 내용만 기록. 숫자형 자료 모든 숫자형 자료는 초기화할 때 자료형을 지정하지 않으면, Int로 인식되며, Int 형의 자료범위를 벗어나거나 뒤에 L을 붙이면 Long 으로 인식된다.  이다. subClass 는 superClass 의 메서드와 property 를 갖는다.Kotlin 의 모든 클래스들의 superClass
이전 포스트에서 Animal 클래스를 만들고 이를 상속하는 Hippo 클래스를 만들었다. 그런데 여기서 Animal 클래스는 인스턴스화 되어도 괜찮을까? 코드를 작성한 본인은 "Animal 클래스는 당연히 인스턴스화 되면 안되!" 라고 말하겠지만, 다른 사람이라면 그
Car 와 Animal 은 개념적으로 상속관계일 수 없다. 하지만 움직인다 는 공통된 행동(메서드)를 가지고 있다. 따라서 중복되는 코드를 줄이기 위해 Animal 과 Car 의 행동을 묶고 싶은데, 상속 없이 어떻게 할 수 있을까? 인터페이스는 상속체계에서 벗어나서
Java 에서 단순히 데이터를 옮기는 용도로 사용하기 위한 객체 dto 라는 개념이 있었다. Java 에서는 여러 에노테이션을 통해 dto 를 구성해야 했다면 kotlin 은 data class 를 준비해뒀다. equality 검증 할때 == 를 이용해 왔다. 그런데
kotlin 은 non-nullable type 과 nullable type 이 나뉜다. Java 에서는 두 타입을 나누지 않았지만, kotlin 에서는 이 둘을 나눠놓음으로써 NullPointerException 을 획기적으로 줄였다. nullabe type 은 no
Exception 은 runtime 중에 발생한 예외적인 상황(exceptional situations) 에 대한 경고이다. Java 에서 쓰던 그대로 try/catch 를 쓸 수 있다. 그리고 역시 finally 도 쓸 수 있다. finally 는 try 가 성공하든
Array는 굉장히 유용했다. 하지만 Kotlin 에서 Array 는 초기화되는 순간 그 사이즈가 고정이 되어 버린다. 그리고 Array 를 val 로 선언한다 하더라도 그 내부 원소가 업데이트 되는것을 막을 수는 없다. collection 은 이러한 Array 의 단
list 는 원소간에 동일한 값이 들어오는것을 허락한다. 하지만 set 자료 구조는 동일한 값이 들어오는걸 허락하지 않는다. 출력 결과는 어떻게 될까? size 는 2이다. set 을 초기화하는 과정에서 중복값이 들어올 수 있지만, 컴파일러는 이를 컴파일 과정에서 에러
Map 은 key 와 value 로 구성된 자료 구조이다. 중복되는 value 는 가질 수 있지만, 중복된 key 를 가질 수는 없다.map 을 초기화 하기 위해서는 key, value pair 를 넣어줘야한다. 이때 key 값은 to 를 이용해서 어떤 value 의
제네릭을 이용하는 것은 런타임 오류를 컴파일 오류로 바꿀 수 있는 좋은 방법이다. 아래와 같이 Generic 을 이용하여 Collection 을 정의하면, String 이 아닌 타입의 원소가 추가될때 컴파일러가 오류를 인지할 것이다. 만약 Generic 으로 타입을 정
lambda(람다) 표현식은 코드블럭을 가지고 있는 객체이다. 객체이기 때문에 람다를 변수에 할당할 수도 있다. 또한 람다를 함수에 넘겨주어서 코드 블럭을 실행시키는 함수로 만들 수도 있다. Collection 과 사용할때 람다를 함수에 넘길 수 있는 기능은 특히 유용
자바의 static 과 비교하면서 https://www.bsidesoft.com/8187
코틀린을 다루는 기술 책에서는 어떤 내용을 다룰까?
효과와 부수효과에 대해서
참조 투명에 대해서