Programming Language26 [Dart] What is differences with const keyword and final keyword. final final은 한 번 값을 대입하면 변경할 수 없다. final은 런타임에 값이 결정된다. final은 해당 파일이 실행될 때 해당 위치에서 값이 결정된다. const const는 한 번 값을 대입하면 변경할 수 없다. const는 컴파일 타임에 값이 결정된다. const는 이 파일을 컴파일할 때 값이 결정된다. 2022. 11. 18. [Kotlin] 진수 변환. 알고리즘. 안녕하세요 골드입니다. 오늘은 코틀린에서 진법 변환에 대해서 글을 쓰도록 하겠습니다. 1. N진수 -> 10진수 2진수, 8진수, 16진수로 표현된 "1111"을 10진수로 변경하는 코드입니다. 코틀린은 함수 라이브러리가 다양하게 잘 만들어져 있습니다. toInt()에 N을 입력하면 "1111"은 N진수로써 표현되고 이를 toInt() 10진수로 변경하는 함수입니다. 만약 변환하는 데에 올바르지 않은 값을 입력하였다면 NumberFormatException이 나타나게 됩니다. 1111(2) -> 15(10) 1111(8) -> 585(10) 1111(16) -> 4369(10) 수학적으로 계산하는 방법은 이렇습니다. 앞서 4비트 "1111"로 예제를 만들었기 때문에 n의 제곱수에 곱해지는 것은 모두 1이.. 2021. 8. 25. [Kotlin] 비동기 프로그래밍 기술 안녕하세요 골드입니다. 비동기 프로그래밍은 더 이상 선택이 아닌 필수임에 따라 프로세스 블록에 대한 해법은 꽤 오래 연구되어 왔습니다. 코틀린 공식 문서를 참고하여 그 다양한 기술 해법에 대해서 간략하게 이야기하고자 합니다. https://kotlinlang.org/docs/async-programming.html#threading Asynchronous programming techniques | Kotlin kotlinlang.org 스레드 콜백 미래시 리액티브 프로그래밍 코루틴 스레드 가장 잘 알려진 방법입니다. 시간이 오래 걸리는 작업은 ui에 영향을 미칠 수 있습니다. 애플리케이션에 경우 최악은 ANR이 발생하여 앱이 멈출 수 있다는 것입니다. 이러한 경우 분리된 스레드에서 작업을 할 수 있습니.. 2021. 6. 19. [Kotlin] 코틀린 초기화 방법과 순서 안녕하세요 골드입니다. 오늘은 코틀린에 있는 여러 가지 초기화 방법에 대해서 설명을 해보려고 합니다. 어떤 방법이 있는지 그리고 이 방법들 중 어떤 것이 먼저 동작하는지 알아볼 것입니다. 1. 생성자 - 기본 생성자 클래스의 인스턴스를 생성할 때, 우리는 생성자를 사용합니다. 여러 생성자를 생성하여 인스턴스의 고윳값을 원하는 방식으로 설정할 수 있습니다. 코틀린의 기본 생성자는 이렇게 생겼습니다. 코딩을 하다보면 한 번쯤은 사용한 경험이 있는 익숙한 코드입니다. 함수의 인자를 선언하듯이 Test 클래스의 생성자를 정의할 수 있습니다. 이게 코틀린의 기본 생성자입니다. 정의한 클래스 생성자 매개변수를 그냥 사용할 수도 있고, 클래스 속성의 커스텀 게터와 세터를 정의해야 한다면 일대일 대응 관계로 정의한 후.. 2020. 12. 25. [Kotlin] lateinit과 lazy 차이점 목차 소개 lateinit lazy lateinit과 lazy의 차이점 초기화 시간 Nullable vs Non-nullable Compile-time vs Run-time error 스레드 안정성 결론 소개 Kotlin은 전역 변수를 선언하면 반드시 초기화 해줘야 한다. 전역 변수를 초기화하지 않고 선언할 수 있도록 도와주는 키워드가 lateinit과 lazy다. 먼저 Kotlin에 lateinit과 lazy가 있는 이유는 null 안정성 시스템 덕분이다. 속성을 nullable로 선언하면 사용할 때마다 ? 연산자나 !! 연산자를 사용해야 하기 때문에 번거로움이 있고 그렇지 않다면 반드시 초기화를 해줘야 한다. 초기화를 하지 못 하는 상황이 발생할 수도 있기 때문에 Kotlin 언어에서 이 둘을 지원한.. 2020. 12. 23. [Kotlin] Java의 void, Kotlin의 Unit, Nothing 차이점 안녕하세요 골드입니다. 이번 글은 키워드의 차이점에 대해서 정리한 글입니다. 그중 자바의 void와 코틀린의 Unit에 차이점을 살펴보고 추가로 Nothing에 대해서도 작성하도록 하겠습니다. 결론부터 이야기하면 코틀린의 Unit은 자바의 void와 비슷합니다. 1. void와 Void 먼저 자바의 void는 반환 타입이 없으므로 생략한다는 의미입니다. 흔히 자바로 메소드를 생성할 때 반환 타입이 없으면 void를 사용합니다. 매번 사용하는 main메소드도 void를 사용합니다. 반환 값이 존재하지 않기 때문입니다. 그리고 Void가 있습니다. void와 Void는 다릅니다. int와 Integer가 같지만 다르듯이 void와 Void도 이와 같습니다. 비유하자면 void는 기본형이고 Void는 참조형입.. 2020. 12. 16. [Kotlin] var, val 그리고 const val 안녕하세요 골드입니다. Kotlin이라는 언어를 사용한다면 너무나도 당연하게 쓰는 var과 val 키워드가 있습니다. 이번 글에서 이 둘의 차이점에 대해서 알아보고 비슷하지만 다른 val과 const val의 차이점에 대해서도 알아보도록 하겠습니다. 1. var var은 variable를 의미하며, Kotlin에서 변수를 선언할 때 쓰는 키워드입니다. 흔히 말하는 기본 자료형 혹은 객체 참조 모두 var 키워드를 사용한 변수에 할당할 수 있습니다. var 키워드로 선언된 변수는 값을 변경할 수 있습니다. 변수를 선언할 때, 타입을 같이 작성할 수도 있습니다. 다만, 선언하면서 초깃값을 지정하였다면 변수의 타입을 생략할 수 있도록 코틀린은 타입 추론(type inference) 기능이 있습니다. 2. va.. 2020. 12. 16. [Java] PriorityQueue(우선순위 큐) 사용법과 예제 안녕하세요 골드입니다. 1. PriorityQueue(우선순위 큐)란? 흔히 아는 Queue는 FIFO(First In First Out) 형식으로 먼저 들어온 데이터를 먼저 방출하는 방식입니다. PriorityQueue는 Queue인터페이스 중의 하나로, 저장 순서에 상관없이 우선순위(Priority)가 높은 것부터 선출하는 것이 특징입니다. 저장공간으로 배열을 사용하고, 각 요소를 힙(heap)이라는 자료구조 형태로 저장합니다. 힙은 이진트리의 한 형태로 가장 큰 값과 가장 작은 값을 빠르게 찾을 수 있다는 장점이 있습니다. 기본적으로 PriorityQueue는 요소에 대한 비교 기준이 존재해야 하고, 비교 기준에 따라 그 우선순위를 결정하게 됩니다. 2. PriorityQueue 선언 Priorit.. 2020. 11. 13. [Kotlin] Collections Map 사용법 안녕하세요 골드입니다. Kotlin의 Collections 중 Map에 대해서 글을 쓰도록 하겠습니다. Map은 다른 자료구조와 다르게 조금 특이하게 직접 정의한 Key와 Value를 쌍으로 데이터를 저장하는 방식입니다. List에서 index를 통해 value에 접근했다면 Map에서는 key를 통해 value에 접근할 수 있습니다. 하나의 Map 안에서 Key는 중복이 불가하지만, value는 중복이 가능합니다. 이제 구체적으로 알아보겠습니다. 1. Map 생성하기 먼저 Map을 하나 생성하겠습니다. 이해하기 쉽도록 메뉴라는 map 데이터를 생성하였습니다. 메뉴판은 Map을 설명하기 적절한 비유라는 생각이 듭니다. 보통 한 메뉴판에 같은 이름을 가진 메뉴는 없지만 같은 가격을 갖는 메뉴는 존재할 수 있.. 2020. 8. 31. 이전 1 2 3 다음 반응형