본문 바로가기

Kotlin/note

(3)
직접 구현해 본 ArrayList - 1 첫 시작은 Stack을 직접 구현해보는 것이었는데 어쩌다보니 ArrayList를 직접 구현해보는 중그 다음은 LinkedList를 할 예정이다! 움하하 일단 ArrayList를 구현하게 된 계기는 ArrayList와 LinkedList의 차이에 대해 서칭해보던 중 한 블로그를 발견했다.그 글은 ArrayList에 대한 설명이었는데, 글 가장 하단에는 ArrayList를 직접 구현해보셨다는 문장을 보고 해보고싶어져서 해보았다. List interface 작성interface MyList { fun get(index: Int): Int fun add(element: Int) fun add(index: Int, element: Int) fun remove(element: Int): Int..
[Kotlin] Scope Functions (let/run/with/apply/also) 헷갈리기만 했던 scope 함수들 정리해보자 -! apply public inline fun T.apply(block: T.() -> Unit): T { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } block() return this } Object 를 수신자(Receiver)로 사용가능하며, this 로 접근 가능 Object 반환 사용하는 경우 주로 객체 초기화 및 속성 설정을 한 번에 수행할 때 사용 also public inline fun T.also(block: (T) -> Unit): T { contract { callsInPlace(block, InvocationKind.EXACTLY_ONCE) } block(this) ret..
data class의 변수들을 private로 선언하는 사람이 있다? data class를 List에 담아서 사용하고 있었는데 반복문을 통해 각 object에 접근하고 싶었다. 근데 .을 아무리 찍어도 선언된 변수들이 나오지 않는 것임? 반복문을 잘못썼나?싶어서 알고있는 반복문으로 다 변경했는데도 안되는 것임,,,,,,,,,,,, 그러다 눈에 들어온 data class의 변수덜,,, data class 안에 private를 사용했으니 외부에서 접근을 못하지요~!~!~!~! 자바에서는 너무나 당연스럽게 private로 선언하고 접근이 가능한 public setter/getter를 따로 정의해서 사용하지만 코틀린에서의 data class는 따로 선언하지 않아도 setter와 getter를 사용할 수 있게 해주는데 그걸 private로 막아버리네 근데 여기서 알게된 점은 변수의..