1. Iterator?- Collection에 저장된 요소들을 순차적 처리 하기 위해 사용합니다. (Eager 처리) - 해당 Iterator 인터페이스는 아래와 같은 구조를 가지고 있습니다. public interface Iterator { /** * Returns the next element in the iteration. */ public operator fun next(): T /** * Returns `true` if the iteration has more elements. */ public operator fun hasNext(): Boolean } Iterator는 저장된 요소들을 순차적으로 접근하기 때문에 특정 인덱스에 바로 접근하지 못한다는 특징이 있습니다. 그렇기 때문에 3번째 요소..
Scope Function Scope Function은 객체 컨텍스트 내에서 코드 블록을 실행할 수 있게 하는 함수입니다. Lambda Expression이 있는 개체에서 Scope Function을 호출하면 임시 범위가 형성됩니다. 이 범위 내에서는 이름 없이 개체에 access할 수 있습니다. 이 Scope Function에는 let, run, with, apply, also 이렇게 5가지가 존재하는데 하나씩 살펴보도록 하겠습니다. Function selection Scope Function의 lambda expression 내부의 컨텍스트 객체는 실제 이름 대신 짧은 참조로 사용할 수 있습니다. 각 Scope Function이 컨텍스트 객체에 access 하는 두 가지 방법 중 하나를 사용합니다. ..
1. 조건문 (if) val number = 0 val result = if (number > 0) "양수값" else if (number 수행할 문장 } when (x) { 1 -> print("x == 1") 2 -> print("x == 2") else -> {// 블록은 자유 print("x는 1, 2가 아닙니다.") } } 만약 일치되는 조건을 한번에 여러 개 표현하려면 쉼표(,)를 이용 when (x) { 0, 1 -> print("x == 0 or x == 1") else -> print("기타") } 또한, in 연산자를 이용해 범위도 지정할 수 있습니다. when (x) { in 1....
1. Null 1 - 1. Null을 허용한 변수 검사 - 변수에 null을 허용하려면 자료형 뒤에 물음표(?) 기호를 명시해야 합니다. fun main() { var str : String? = "Hello Kotlin" str = null println("str : $str") } 1 - 2. 세이프 콜(?.)과 non-null 단정 기호(!!.)를 활용하여 null을 허용한 변수 사용 그냥 length를 사용할 경우 빨간줄이 뜨며 아래와 같이 뜰 것입니다. 데이터 타입에 ?를 쓰게 되면 세이콜이나 non-null 단정기호만 이용가능 합니다. 세이프 콜(?.) - null이 할당되어 있을 가능성이 있는 변수를 검사하여 안전하게 호출하도록 도와주는 기법 - null이 아닌 경우 그대로 실행이 되고 nu..
컬렉션을 정렬하는데 필요한 메서드 Arrays.sort()는 사실상 해당 타입 클래스의 Comparable의 구현에 의해 정렬되었던 것이다. 1. Comparable 정의 - 기본적으로 적용되는 정렬 기준이 되는 메서드를 정의하는 인터페이스 - Integer, Double 클래스 : 오름차순 정렬 - String 클래스 : 사전순 정렬 구현 방법 - Comparable interface를 implements 후 compareTo() 메서드를 오버라이드한다. - compareTo() 메서드 작성법 현재 객체 파라미터로 넘엉노 객체 : 양수 리턴 2. Comparator 정의 - 기본 정렬 기준 외에 다..