일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- RxJava
- react
- 프로그래머스
- android
- 반응형 프로그래밍
- 안드로이드 클린아키텍쳐
- RxKotiln
- 잡담
- 이펙티브코틀린
- Kotlin
- Swift 문법
- 안드로이드 개발자
- 안드로이드 컴포즈
- Firebase
- 안드로이드 다이얼로그
- Kotiln
- 코딩테스트
- 안드로이드
- Java
- 코틀린
- Dev6
- 코루틴
- Flutter
- Rxjava 안드로이드
- Go언어
- MVVM
- 알고리즘
- 개발자
- android compose
- 이펙티브 코틀린
- Today
- Total
목록코틀린 (3)
최데브는 오늘도 프로그래밍을 한다.
우리는 함수를 작성하다보면 결과를 만들어 낼 수 없을 때가(예외) 있다. 대표적으로 아래와 같은 상황이 생길 수 있다. 서버로부터 데이터를 받을때 인터넷 문제로 받아오지 못한 경우 조건에 맞는 요소들중 첫번쨰 요소를 가져오려고 했는데 조건에 맞는 요소가 하나도 없는 경우 ex) index 에러 json 파싱을 하려고 했는데 형식이 맞지 않아서 발생하는 오류 이런 상황을 처리할때 두 가지 매커니즘을 활용 할 수 있다. 제목처럼 null이나 Failure(라는 이름의 sealed 클래스)를 사용해서 처리 예외를 throw 두가지에는 중요한 차이가 있다. 예외를 throw 하는거부터 보자. 일단 예외는 정보를 전달하는 방법으로 사용해서는 안된다. 예외는 잘못된 특별한 상황을 나타낼때 사용해야한다. 그 이유는 ..
코틀린은 타입추론(type inference) 를 제공한다. 자바 10부터는 코틀린처럼 타입추론을 제공하지만 코틀린에 비해서는 제약이 많다. 아무튼 타입 추론을 사용할때 주의할 점들이 있는데 할당 할때 inferred 타입은 정확하게 오른쪽에 있는 피연산자에 맞게 설정된다는 것을 기억해야 한다. 일반적으로는 아래와 같이 open class Drink class Water: Drink() fun main() { var drink = Water() drink = Drink() // 타입에러 } 하지만 이건 open class Drink class Water: Drink() fun main() { var drink : Drink = Water() // 타입 명시 drink = Drink() } 타입 명시를 해..
코투린의 비동기 실행을 하다보면 코루틴을 시작할때 launch 를 사용하거나 async 를 사용하거나 하는데 동작은 비슷하게 하지만 둘의 차이가 있다. launch - 새로운 코루틴을 시작한다. 결과값을 전달하지 않을 때 사용한다. async - 결과를 리턴할 수 있는 코루틴을 시작할때만 사용한다. 둘의 차이는 리턴값이 있냐 없냐의 차이다. 뭘 사용하는가에 따라 메소드나 완료 대기에 대한 대응이 달라진다. 이 이야기를 한건 launch 을 사용하면 job 을 반환하고 async 를 사용하면 Deferred 를 반환하기 때문이다. 그럼 다시 제목의 내용으로 돌아와서 job 과 Deferred 에 대해 알아보자. 사실은 job 과 Deferred 는 비슷하다. 그도 그럴게 Deferred 는 job을 확장하..