개발 공부/kotlin 4

kotlin enum class(열거형 클래스)

enum class는 열거 상수들로 이루어져있고 이 열거 상수는 각 객체로 이루어져있다. 상태 값이나 비슷한 속성 값을 상수로 만들어 편하게 사용할 수 있다. 하단의 예시를 보면 쉽게 이해할 수 있다. enum class DayOfWeek{ MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY } fun getWeeklyTodoList(today:DayOfWeek):String{ return when(today){ DayOfWeek.MONDAY -> "work" DayOfWeek.TUESDAY -> "work.." DayOfWeek.WEDNESDAY -> "work..." DayOfWeek.THURSDAY -> "work...." DayOfWeek.FRID..

kotlin get(), set() 프로퍼티

kotlin은 java와는 다르게 자동으로 getter/setter를 생성해줘서 신경쓸 필요는 없지만, 값을 가지고 오거나 넣는 것 밖에는 하지 못한다. ​ 가지고 올 때 값을 계산해서 가져온다던지, 값을 넣을때 다른 것도 변화 시키고 싶다던지 할 때 get()과 set()이 사용된다. ​ 예제) 스카프의 사이즈(가로*세로)를 구해서 주문을 넣는다고 가정했을 때, 각 주문한 스카프 사이즈와 총 사이즈를 구하기 var totalSize = 0 set(value) { field = value order(value) } fun main(arg: Array) { val scarf1 = Scarf(3, 2) val size1 = scarf1.size addSize(size1) val scarf2 = Scarf(5..

Kotlin 컬렉션 정렬 sort, sorted, sortedby, sortDescending, sortWith

1. sort() / sorted() 정렬을 잘 알지 못하고 쓰다보니 어쩔 때는 sort만 되고 어쩔 때는 sorted만 될 때가 있어서 당혹스러울 때가 있었다. 또 정렬을 했는데 왜 안바뀌지? 하고 무지하던 때도 있었다. 😥 이러한 경험을 토대로 이 2개를 위주로 정리해 보기로 했다. //예시 1 val list = listOf(5,4,8,2,1,10) list.sort() // error //예시 2 val list = listOf(5,4,8,2,1,10) list.sorted() println(list) // [5, 4, 8, 2, 1, 10] 1-1 sort() - 변경이 가능한 mutable 리스트의 순서를 변경 - 리스트 자체의 순서를 변경 (리턴 x) val list = mutableList..

Coroutines/코루틴 기초 1

코루틴이란? 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 (Android에서) 사용할 수 있는 동시 실행 설계 패턴. 사실 나 같은 초보 개발자에게는 설명을 읽어도 무슨 말인지 잘 모르겠다. 그래서 기초지만 내가 이해한 대로 다시 정리! → 보통 코드를 작성하면 순서대로 동작을 하게 되는데 코루틴으로 작성을 하게 되면 루틴의 순서대로 동작하게 되는 것! → 모든 루틴이 끝날 때까지 기다려주는 것(끝난 후에 return) → routine에 delay가 있을 경우(thread sleep 같은 역할) 딜레이 만큼 다른 루틴을 실행 후 (중단) 다시 재개 1. launch / runBlocking / delay - launch와 runBlocking은 새로운 coroutine을 생성 (- runBlo..