코루틴은 코틀린에만 있는 개념은 아닙니다. 여러 언어에 있는 개념이지만 일단은 Kotlin 입니다. Coroutine은 협력형 multitasking을 이용하여 동시성 프로그래밍을 지원하고 해당 루틴을 suspended하는 방식으로 context-switching을 없애고 최적화된 비동기 함수를 통해 비선점형으로 작동하기 때문에 복잡한 nonblocking code를 간결하게 해주며 더 나은 성능을 지원합니다. https://www.youtube.com/watch?v=_hfBv0a09Jc&feature=youtu.be&t=10m12s 아주 기본적인 부분들만 이야기 합니다. launch, async Coroutine에서 사용되는 함수는 suspend로 선언된 지연 function 이어야 합니다. 컴파일러가..
enum값은 미리정의된 타입에서 값을 가져와서 사용하기 때문에 대체적으로 안정적입니다. 스트링을 하드코딩하는거보다는요. 1. 기본적인 선언 enum class CustomType { NORMAL, MEDIUM, BEST } 2. 초기화를 하여주는 타입. 타입이 있는 타입? enum class CustomType(val name: String) { NORMAL("normal"), MEDIUM("medium"), BEST("best") } 이렇게 사용 가능합니다.. val type = CustomType.MEDIUM.name => medium 3. 상태에 따른 값을 가져와서 사용 enum class CustomType { NORMAL { override fun index() = 1 override val i..
저는 지금은 주로 iOS만 개발하기 때문에 guard를 잘 사용합니다. 그럼 안드로이드에서는 guard가 없는데 어떻게 사용하면 guard처럼 사용할 수 있을까요? 1. if그냥 손쉽게 사용하는 방법입니다.Android Studio 안에서는 smart기능이라고 하죠... 2. let null이 아닐 경우에 접근하여서 값을 가져오는 방법입니다. 3. apply let의 경우와 비슷합니다.거의 동일하다고 봐도 됩니다. 4. guard처럼 씁니다. guard처럼 inline fun을 만들어 보았지만 리턴 타입을 제대로 만들지 못하여서 그렇게는 되지 않는것 같습니다.각 언어에 맞는 방법으로 null을 잘 바인딩해서 사용하여 봅시다.
kotlin을 이용하여 개발을 하다보니 swift의 enum의 사용이 아쉬움이 있었습니다. 그래서 enum처럼 사용하는 방법에 대해서 적어보려고 합니다.아주 동일한 방법은 문법상 안될것 같고 동일하게는 동작합니다. swift에서는 다음과 같이 만들면 됩니다. 그럼 이것을 kotlin으로 만들어 보겠습니다. 두가지 방법정도가 있으며, interface와 sealed class를 이용하는 방법입니다. 참고로 sealed class는 enum과 비슷한 서로 같은 값을 가질수 없는 형태의 집합이라고 합니다. sealed class 공식 문서 : https://kotlinlang.org/docs/reference/sealed-classes.html
아마도 많은 분들이 아시는 내용일것이라고 생각합니다.너무 간략해서 쉬운 분들은 그냥 패스하세요. 위와 같은 코드처럼 넣어주면 getter 만 만들게 됩니다. 이런 부분이 당연하게 동작하는것이 var로 만들어주게 된다면 값이 변하게 되는 성질이 생기게 되어서 setter를 만들어 주어야 하고, val로 만들어주게 되면 값이 변하지 못하게 되는 특성을 가지고 getter만 만들어 지게 됩니다. 이러한 특성을 가지고 여러가지 값을 조합하여서 값을 이용할 경우에는 fun이 아닌 val로 만들어서 활용이 가능합니다.
- Total
- Today
- Yesterday
- android
- Codable
- Spring
- Windows
- cocoapods
- Java
- MySQL
- php
- nodejs
- Xcode
- windows10
- war
- Linux
- tomcat
- go
- Kotlin
- enum
- ios
- intellij
- CentOS
- Python
- docker
- rxswift
- Gradle
- git
- ubuntu
- centos8
- github
- golang
- SWIFT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |