분류 전체보기
-
[Kotlin] ArrayKotlin/Types 2021. 12. 16. 17:05
https://kotlinlang.org/docs/basic-types.html#arrays Basic types | Kotlin kotlinlang.org 코틀린 배열 1. primitive 타입 배열 2. 객체 타입 배열 1. primitive 타입 배열 (package kotlin 패키지 , Arrayskt 파일에 각 primitive 타입 배열 클래스들이 선언되어 있다) ByteArray, CharArray, ShortArray, IntArray, LongArray, FloatArray, DoubleArray, BooleanArray 각 배열 클래스는 iterator() 메서드를 제외하고 같은 구조로 되어있다. IntArray를 확인해보자. (자바의 int[] 배열에 맞게 자동으로 구현이 된다) ..
-
[Java] Wrapper class 관련java/Class.Interface.Method 2021. 12. 16. 13:22
Collection에는 객체를 담아야 한다. primitive 타입은 객체가 아니라 Collection에 넣지 못한다. primitive 타입이 객체로 변경된 것에 해당하는 클래스인 Wrapper클래스를 사용하여 Collection에 넣는다. primitive타입이 객체 타입으로 변환된 클래스가 Wrapper 클래스 int타입의 Wrapper 클래스인 Integer 클래스만 확인해봄 int / Integer (int형 Wrapper 클래스) 간의 Boxing, Unboxing , AutoBoxing, AutoUnboxing package wrapperclass; public class WrapperTest { public static void main(String[] args) { Integer inte..
-
[Kotlin] ClosureKotlin/Closure 2021. 12. 15. 18:42
람다식, 익명 함수, 로컬 함수, object 표현식(object 선언 x) 는 외부의 컨텍트의 변수에 접근 가능 https://umbum.dev/598 [Kotlin] 람다(lambda), 변수 포획과 클로저, 멤버 참조 lambda ```kt { x: Int, y: Int -> x + y } ``` 코틀린 람다는 자바 람다와 달리 항상 중괄호 사이에 위치한다. 반면 메서드 참조는 중괄호 없이 써야 한다. 코틀린 람다 호출은 실행 시점에 아무런 부가 비 umbum.dev
-
[Kotlin] inline function 정리 1Kotlin/Function 2021. 12. 15. 11:11
inline function의 개념을 이해하기 위해서는 람다식, 고차함수, 함수타입 변수에 함수객체를 생성하는 법을 이해하고 있어야 한다. 설명하는 내용들은 아래의 포스팅 시리즈에 있다. [Kotlin/Function] - [Kotlin] 코틀린 함수와 함수형 프로그래밍 1 inline function의 선지식 조건이 많아 세편정도의 포스팅으로 기록할 것 같다. 람다식, 함수타입 변수에 대입된 함수, 고차함수에 전달될 인자의 함수 위의 세가지에 해당하는 함수는 실제로 Function0~ Function22 인터페이스를 구현한 객체로 만들어 진다. (함수의 파라메터 개수에 따라 Function0~ Function22) 또한 해당 함수를 호출하기 위해서는 객체의 invoke함수를 사용하는데, invoke함수..
-
[Kotlin] objectKotlin/Class and objects 2021. 12. 13. 18:54
object expression과 object declaration를 이해하기 전에 알고있어야할 개념 [Java/Class] - [Java] 내부 클래스 [Java/Class] - [Java] 익명 클래스 [Kotlin/Class and objects] - [Kotlin] Nested Class 자바 내부 클래스, 익명 클래스와 코틀린의 내부 클래스를 이해해야 object 표현식, 선언식의 깊은 이해가 가능하다. object의 내용을 다뤄보기 전에 필요한 내용들을 간단하게 정리해본다 ( 자세한 것은 위의 포스팅을 참고 ) 자바와 코틀린의 내부 클래스 선언 가능 차이 Java - 내부 클래스의 선언에는 제한이없다. 코틀린- Inner클래스 내부에 Nested클래스 정의하는 것을 가능하지 않게 해놨다. 상속..
-
[Kotlin] Nested ClassKotlin/Class and objects 2021. 12. 13. 18:12
[Java] 내부 클래스 [Java] 내부 클래스 코틀린 내부 클래스 https://hellose7.tistory.com/119 [kotlin] Nested Class [Java/Nested Class] - [Java] 내부 클래스 [Java] 내부 클래스 non-static 내부 클래스 인스턴스 생성법 반드시 외부 클래스 인스턴.. hellose7.tistory.com [Java/Class] - [Java] 익명 클래스 [Java] 익명 클래스 -익명 클래스란 class A 를 상속받아 어떠한 기능을 하는 class B를 만들어야 한다고 가정하자. class B extends A로 클래스 B를 선언한 뒤에 new B를 통해 객체를 생성한다. 만약 프로그램에서 클래스 B는 hellose7.tistory...
-
[Kotlin] by lazyKotlin/늦은 초기화 2021. 12. 12. 15:37
by 키워드 용도 1. 클래스(인터페이스 메서드 구현) 위임 2. 프로퍼티(accesor) 위임 by lazy - 프로퍼티 위임의 한 종류 코틀린은 기본 라이브러리를 통해 프로퍼티를 위임하는 여러 방법들을 제공한다. 그 중 한 종류이다. val 프로퍼티에만 사용가능하다. lazy 코드를 이해하기 위해 프로퍼티의 custom getter의 동작을 보자 person2의 custom getter = get(){ //코드 } //코드는 person2를 참조할 때(getter사용시) 호출된다. 인스턴스만 생성하고 getter를 호출하지 않아 getter의 println은 출력되지 않는다. 프로퍼티를 참조(getter 호출할떄) println코드가 실행된다는 것을 인지하고 lazy의 동작 과정을 살펴보자. 클래스 ..
-
[Firestore] 9편- 파이어스토어 캐시Firebase(Android)/Firestore 2021. 12. 6. 13:18
Firestore 캐싱동작 기본적인 동작과 새로 깨달은 점을 정리한다. 일단 캐싱된 데이터는 앱 데이터베이스에 저장되어 앱 설정에서 캐시삭제말고 앱 데이터를 통해 모두 밀어버리던지, 코드로 삭제를 제어해야 한다. Firestore 문서 캐싱 데이터가 디바이스의 어디에 저장되는지 궁금해서 구글링해본 결과 데이터베이스에 저장한다. 문서 관련 테스트 주의: 오프라인 지속성 버튼은 write,read작업이 한번이라도 들어간 상태에서 바꾸면 크래쉬 난다. 코드, xml 오프라인 지속성 쿼리(컬렉션 쿼리, 컬렉션 그룹쿼리), 문서 get, Transaction, Batched Write 가 기본 동작이 조금씩 다른점을 포함하여 오프라인 지속성 개념까지 챙기려면 약간 복잡해진다. 오프라인 지속성은 안드로이드, 애플,..