- Today
- Yesterday
- Total
목록Language/Kotlin (4)
메이쁘
안녕하세요? 개인적으로 코틀린 문법 공부하다가 contract에 대해 알게 되었고, 샘플 코드를 작성해가면서 이해하고 있었습니다. 그러던 중, 샘플 코드가 제대로 동작하지 않아서 원인을 찾던 중 좀 다르게 이해하고 있었습니다.. 그래서, 혹시나 까먹지 않고 나중에 다시 사용할 때 기억하기 위해 간단하게라도 포스팅하게 되었습니다! (다른 블로그 게시글을 참고하면서 공부했습니다.) 0. Contract 란? 우선, contract에 대한 정의와 사용 목적에 대해 간단히 작성하겠습니다. ------------------------------------------------------------------------------------------------------------------------------..
안녕하세요. fun sum(vararg nums: Int) = nums.sum() // parameter로 받은 숫자들을 전부 더하는 함수 와 같이, 간단한 함수를 가지고 테스트를 해봤습니다. vararg nums를 parameter로 받는 함수인데요. vararg는 가변인자. 즉, 매개변수의 개수를 동적으로 지정해 줄 수 있게 하는 변수 입니다. 그렇기 때문에, 배열을 parameter로 넘길 수 있습니다. 근데 왜 이 글을 포스팅하게 되었냐!! String 같은 경우, arrayOf() 함수를 사용해서 Array 으로 형변환한 뒤 fun showAll(vararg s: String) { // parameter로 받은 문자열을 전부 보여주는 함수 println(s.joinToString()) } 와 같..
안녕하세요. Kotlin에서 주로 사용하는 문법들 중 늦은 문법들에 대해 다뤄보겠습니다. 우선 Q. lateinit, lazy 를 사용하는 이유는 ? A. 보통 class에서 변수를 초기화하면, 클래스 생성 시 해당 변수도 함께 생성되며 초기화된다. 그렇게 되면 클래스 객체를 생성할 때 마다 해당 변수도 함께 초기화되기 때문에 바로 사용할 수 있다는 장점이 있다. 하지만 해당 변수를 바로 사용하지 않거나 꼭 사용하는 경우가 아니라면?? 오히려 클래스 생성마다 해당 변수를 만들고 초기화 하는 것이 시간적, 메모리적 낭비라는 거죠. 또한, 전역 변수를 선언하기 위해 굳이 = null 을 번거롭게 해야 할 경우도 종종 있습니다. 그래서 Kotlin 에서는 lateinit 과 lazy 문법을 만들었습니다. la..
안녕하세요. Coroutine 은 코루틴이라고 불리며 코틀린의 주요 기능 중 하나입니다. 코루틴은 2018년 10월 29일 Kotlin 1.3에서 정식 릴리즈되면서 추가된 기능 중 하나라고 합니다. 그럼 시작하겠습니다. 코루틴(Coroutine) 이란? - 서브루틴보단 크지만 쓰레드는 아닌, 그렇지만 쓰레드와 비슷한 기능을 함 - light-weight Threads 로, 가벼운 쓰레드 와 같아서 비동기적(async) 프로그래밍이 가능함 *** 현실 동기(동시) 와 컴퓨터상의 동기 와는 반대개념. *** 즉, 동기는 비동시라 이전 코드나 함수 완료 전까지 대기. 비동기는 동시라 코드나 함수 호출만 하고 바로 다음 동작 진행. - 함수 형태로 코드를 작성하여 가독성이 높음 - 대용량 처리, 복잡한 계산과 ..