전체 글

    [ Kotlin ] Coroutines을 확실하게

    코루틴의 포인트는 이전에 자신의 실행이 마지막으로 중단되었던 지점에서 다음의 장소에서 실행을 재개할 수 있다는 것이다. 코루틴은 협력 작업, 예외, 이벤트 루프, 반복자, 무한 리스트, 비동기 처리에 적합하다. 코루틴은 비동기처리를 간단한 코드로 만들어준다. (콜백, 캔슬, 리소스관리 등...) 코루틴은 메인쓰레드가 블라킹되는 부분에 지원을 해준다. 코루틴은 비동기 콜백 처리를 순차적인 코드로 바꿀 수 있다. (콜백지옥으로 되어있는 것을 순차적으로 짤 수 있다.) fun main() { GlobalScope.launch { delay(1000L) println("World") } print("Hello, ") Thread.sleep(2000L) println("Hi, ") } // Hello, (1초뒤)..

    [ Kotlin ] 코틀린에 존재하는 특이한 자료형 (Unit, Any, Nothing)

    1. Unit - 자바의 void와 같음 fun unitMethod(): Unit { println("반환값이 없는 함수입니다.") } 2. Any/Any? - Any - non-null 타입의 조상격 (Int, Float, ...) - Any? - nullable 타입의 조상 (Int?, Float?, ...) 3. Nothing ex) fun 함수명(변수명: 타입, ...) : Nothing { 함수내용 -> " 너 뭔가 잘못했다. " } - 이 함수를 호출하면 뭔가 잘못되었다는 것을 표현 - 명시적으로 알려줌

    [ Kotlin ] Null

    NULL - 상태를 모름, 존재하지 않음 - 0과는 다름 - Null을 대상으로 연산할 수 없음 NullSafety (Null로 부터 안전해지는 이유) - 코틀린의 가장 큰 특징 ?를 이용하여 Null 처리 val number : Int? = null // Null 가능 val number : Int = 10 // Null 불가능 val num1: Int? = 3 + 5 val num2: Int? = 10 val num3: Int? = num1 + num2 // 결과 -> 에러 왜 Error일까? => 컴파일할 때 num1과 num2가 Int로 보장되지 않기 때문에 에러 num1이과 num2가 nullable타입이라서, 만약 nullable타입이 아닌 Int 형식이었으면 성공적으로 출력 => 에러만 없애..