본문 바로가기
728x90
반응형

코틀린17

코틀린 null 처리 방법 - Elvis 연산자 이렇게 쓰던걸 fun startsWithA(str: String?): Boolean { if (str == null) { throw IllegalArgumentException("null이야") } return str?.startsWith("A") } 이렇게 쓸 수 있음 (Elvis 연산자 ?: 사용) fun startsWithA(str: String?): Boolean { return str?.startsWith("A") ?: throw IllegalArgumentException("null이야") } 엘비스 연산자 앞의 값이 null 이면, 엘비스 연산자 뒤의 값을 return 2023. 11. 14.
아토믹 코틀린 - 컬렉션에 대한 연산 람다를 사용해 List / MutableList 초기화 fun main() { val list1 = List(10){ it } // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] val list2 = List(10){ 0 } // [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] val list3 = List(10){ 'a' + it } // [a, b, c, d, e, f, g, h, i, j] val list4 = List(10){ list3[it % 3] } // [a, b, c, a, b, c, a] val mutableList1 = MutableList(5){ 10 * (it+1) } // [10, 20, 30, 40, 50] } 다양한 컬렉션 함수 any() - 원소 중 어느 하.. 2023. 10. 31.
아토믹 코틀린 - 람다 fun main() { val list = listOf(9, 11, 23, 32) list.joinToString(" "){"[$it]"} } 주요 특징 람다에는 이름이 없다. 람다에는 함수 생성에 필요한 최소한의 코드만 필요하다. 다른 코드에 람다를 직접 삽입할 수 없다. 람다가 너무 복잡하면 이름 붙은 함수를 정의하는 편이 더 명확하다. 람다를 단 한 번만 쓰더라도 람다가 너무 크면...!? 이름 붙은 함수로 작성하는게 더 낫다. 사용 예시 fun main() { val list = listOf(1, 2, 3, 4) val result = list.map({ n -> "[$n]"}) } 그런데 파라미터가 하나인 경우, 코틀린은 자동으로 파라미터 이름을 it으로 만든다. 즉, 파라미터가 하나고 it으로.. 2023. 10. 30.
아토믹 코틀린 33 - when 두 세 가지 이상 선택지가 있는 경우 when 사용하면 굳. case 문이랑 비슷한듯... // 사용 예) when (i) { 1 -> "apple" 3 -> "banana" 11 -> "grape" else -> "It's not fruites." } 가장 먼저 일치하는 매치식에서 when 식의 실행이 끝난다. else는 항상 맨 마지막에 위치해야 한다. when 결과를 활용하는 when 식에서 else 가 없으면 오류남. 2023. 10. 15.
아토믹 코틀린 32 - 오버로딩 함수의 시그니처는 1) 함수 이름, 2) 파라미터 목록, 3) 반환 타입으로 이루어진다. 코틀린은 시그니처를 비교하여 함수와 함수를 구분한다. 함수를 오버로딩 할 때는 함수 파라미터 리스트를 다르게 해야 한다. 함수의 반환 타입은 오버로딩 대상이 아니다. 오버로딩은 이럴 때 유용함 fun add(i: Int, j: Int) = i + j fun add(i: Double, j: Double) = i + j // 오버로딩이 되니 파라미터 타입이 다른걸로 새로운 함수를 만들 필요 없다. 2023. 10. 15.
728x90
반응형