Android/Kotlin(4)
-
[Kotlin/코틀린] 코틀린 기본 정리(kotlin 값 비교, Const & val & var, Lazy & Lateinit, Object & Companion Object, data class & enum class & sealed class & inner class)
kotlin, java 값 비교 주소값 비교 (동일성) : 같은 주소를 참조하는 지 비교합니다(주소 값 비교, 식별자를 기반으로 객체를 판단) 값 비교(동등성) : 두 개의 객체의 값이 완전히 동일한 것인지 비교합니다(값비교, 내부적으로 equals를 호출) Kotlin === == Java == equals Const & val & var Const - 명명 규칙 : 대문자 & _ (under bar) - java의 static final 대체 가능 - val와 같이 읽기 전용이지만 complie 시 값이 할당되므로 기본 자료형과 문자열만 할당이 가능함 - 함수 내의 지역변수나, 클래스의 속성으로 사용할 수 없음 val(value) - 변경 불가능한 값, java의 final 대체 가능 - 런타임시 할..
2022.02.01 -
[Kotlin/코틀린] Scope Functions / 기본 제공 함수 정리 let(), with(), apply(), run(), also()
1. let() 함수 - let() 함수는 블록에 자기 자신을 인수로 전달하고 수행된 결과를 반환 - 인수로 전달한 객체는 it으로 참조 - let()함수는 ?. (안전한 호출 연산자) 와 함께 사용하면 null 값이 아닐 때만 실행하는 코드로 사용할 수 있다 - 사용 : null 이 아닌 경우에 코드를 실행해야 하는 경우 // fun T.let(block: (T) -> R) : R val result = str?.let{ Integer.parseInt(it) } 2. with() 함수 - with() 함수는 인수로 객체를 받고 블록에 리시버 객체로 전달하며 수행된 결과를 반환 - 리시버 객체로 전달된 객체는 this로 접근 (this는 생략 가능) - 안전한 호출이 불가능 하므로 인수가 null이 아닌..
2020.06.11 -
[kotlin/코틀린] Collections(컬렉션) 함수 중 sortedWith과 sortWith 비교
프로그래머스 코딩 테스트 연습문제 중 "가장 큰 수" 문제를 풀다가 sortedWith과 sortWith의 차이점이 궁금해져서 쓰게 된 포스팅 먼저 나의 경우에는 IntArray를 String 타입으로 된 리스트로 변경한 다음 첫 번째 요소 + 두 번째 요소와 두 번째 요소 + 첫 번째 요소를 비교하여 내림차순으로 정렬하는 기능이 필요했다 fun solution(numbers: IntArray): String { val strings = arrayListOf() numbers.forEach { strings.add(it.toString()) } /** * 첫번째 + 두번째 와 두번째 + 첫번째 값을 비교하여 큰순서대로 정렬 * 기본 오름차순으로 나오기 때문에 매개변수 순서를 변경하여 내림차순으로 나올수 ..
2020.06.02 -
[Kotlin/코틀린] Pair 와 Triple
Pair와 Triple 이란? 두 개 혹은 세 개의 각각 다르거나 같은 데이터 값을 가지는 데이터 클래스를 대신하여 사용할 수 있도록 코틀린에서 제공해주는 미리 정의된 데이터 클래스라고 할 수 있다 이름에서도 알 수 있듯이 Pair는 두 개의 데이터 값을 가지고 있으며 Triple은 세 개의 데이터 값을 가지고 있다 1. Pair data class Pair : Serializable Pair(first: A, second: B) 사용 방법 first, second 프로퍼티 혹은 componentN 메서드를 사용하여 접근 가능하다 (매우 간단) val (a, b) = Pair(1, "two") println(a) // 1 println(b) // two //or val myPair = Pair("one"..
2020.06.01