본문 바로가기

Kotlin32

[코틀린] 코루틴 (Coroutine) 코루틴 (Coroutine) 코틀린에서 기본적으로 제공하는 비동기처리 라이브러리 루틴 (Routine) : 하나의 개별적인 작업을 의미 코루틴은 넌블로킹 코드 (Non - Blocking Code), 비동기 코드를 마치 동기 코드처럼 쉽게 작성하면서도 비동기 효과를 낼 수 있게 한다. 문맥 교환 없이 루틴을 일시 중단하고 다른 루틴을 실행할 수 있다. 블로킹 코드 (Blocking Code) 애플리케이션 실행 시 운영체제 대기 큐에 들어가면서 요청에 대한 시스템 콜이 완료된 후에 응답할 수 있는 코드 넌블로킹 코드 (Non-blocking Code) 애플리케이션 실행 시 운영체제 대기 큐에 들어가지 않고 바로 요청에 대한 결과를 반환할 수 있는 코드 스레드와 같은 기법으로 구성하기에 성능은 뛰어나지만 코.. 2020. 11. 7.
[코틀린] 표준 라이브러리 확장 함수 5가지 (let, also, apply, run, with) 표준 라이브러리 확장 함수 함수 접근 방법 반환 방법 T.let it block 마지막 결과값 T.also it caller 자체를 반환 (it) T.apply this caller 자체를 반환 (this) T.run 혹은 run this block 마지막 결과값 with this Unit 1. let let()을 호출하는 객체(caller)를 람다식 블럭에 파라미터로 넘김 'it'을 통해 호출 객체(caller)에 접근 블럭의 결과값을 반환 import java.util.* fun main() { var arr = arrayOf(1, 2, 3) arr.let { println("${it[1] + it[2]}") } //let 람다식 내부에서 arr[1] + arr[2] 를 출력 println(arr.l.. 2020. 10. 4.
[코틀린] 배열 평탄화 flatten() 배열 평탄화 다차원 배열을 1차원 배열로 만드는 것을 의미한다. Array의 flatten() 메서드 사용 List 형태로 반환한다. import java.util.* fun main() { var arr = arrayOf(arrayOf(1,2,3), arrayOf(4,5,6), arrayOf(7,8,9)) println(Arrays.deepToString(arr)) var arr2 = arr.flatten() println(arr2) /*결과 [[1, 2, 3], [4, 5, 6], [7, 8, 9]] [1, 2, 3, 4, 5, 6, 7, 8, 9] */ } 2020. 10. 4.
[코틀린] 비트 연산자 비트 연산자 코틀린의 비트 연산자는 자바와 다르게 문자열로 이루어져 있다. 비트 연산자 예시 설명 shl 1 shl 3 - 1을 3칸 왼쪽으로 밀어준다. - 자바 : - 중위 함수 ushr 10 ushr 2 - 10을 2칸 오른쪽으로 밀어준다 - 부호가 없다. - 중위 함수 and 7 and 1 - 7과 1을 논리곱 연산한다. - 자바 : & - 중위 함수 or 6 or 3 - 6과 3을 논리합 연산한다. - 자바 : | - 중위 함수 xor 2 xor 5 - 2와 5를 베타적 논리합 연산한다. - 자바 : ^ - 중위 함수 inv 12.inv() - 12를 not 연산한다. - 자바 : ~ 2020. 9. 28.