코틀린
-
[코틀린] 타입 안정성코틀린 2022. 3. 7. 22:16
1. Any와 Nothing 클래스 Any 코틀린의 모든 클래스의 상위 클래스. 각 클래스에 대해서 equals, hashCode, toString 같은 메소드들을 지원한다. 자바에서 Object와 유사한 기능을 하고 뿐만아니라 to(), let(), run(), apply(), also()같은 확장 함수를 제공한다. Nothing 표현식이 리턴하지 않을 때 Unit을 사용한다고 했다. 하지만 함수가 예외를 발생시켜 정말 아무것도 리턴하지 않을 때는 Nothing을 리턴 타입으로 갖는다. Nothing은 모든 클래스로 대체할 수 있어 리턴 타입에 어떤 타입이 있으면 따로 명시를 하지 않아도 된다. fun computeSqrt(n: Double): Double { // Nothing이 반환될 수 있지만 표..
-
[코틀린] 컬렉션코틀린 2022. 3. 7. 12:26
1. 컬렉션의 특징 코틀린 컬렉션은 mutable, immutable 두 가지가 구분되어서 제공된다. Pair: 값이 두 개인 튜플 Triple: 값이 세 개인 튜플 Array: 객체, 원시타입으로 구성된 순번이 있고 크기가 고정된 컬렉션 List: 객체들이 정렬된 컬렉션 Set: 객체들이 정렬되지 않은 컬렉션 Map: 딕셔너리 또는 키와 값의 맵 코틀린이 제공하는 편리한 메소드들 코틀린은 foreach, map, withIndex등 컬렉션 반복을 위한 메소드들을 제공한다. val names = listOf("Park", "Kim") println(names.withIndex().javaClass) // class kotlin.collections.IndexingIterable names.withInde..
-
[코틀린] 외부 반복과 아규먼트 매칭코틀린 2022. 3. 7. 11:01
1. 범위와 반복 range 코틀린에서는 특정 범위 내 반복을 위한 클래스가 있다. val shortRange: IntRange = 1 .. 5 1부터 5까지의 반복을 위한 클래스는 위와 같다. val aToZ: CharRange = 'a' .. 'z' 위는 a 부터 z까지의 반복을 하기 위한 변수 정의이다. val stringRange: ClosedRange = "aaa" .. "aad" println(stringRange.contains("aac")) println(stringRange.contains("aae")) 정방향 반복 val shortRange: IntRange = 1 .. 5 println(shortRange) for(i in shortRange) print("$i ") // 1 2 3 ..
-
[코틀린] 함수코틀린 2022. 3. 6. 23:27
1. 함수 생성 fun greet() = "Hello" println(greet) // hello 출력 코틀린에서 함수는 fun 함수이름, 함수 파라미터, 함수 본문으로 구성된다. 함수 본문은 =이나 {}로 구성 할 수 있다. 리턴타입과 타입 추론 단일표현식이고 {} 블록으로 구현된 함수가 아닌 경우 리턴 타입 추론이 발생한다. 직접 리턴 타입을 명시할 때는 아래와 같이 할 수 있다. fun hello(): String = "hello" 모든 함수는 표현식 코틀린에서 모든 함수는 표현식이다. 만약 아무것도 리턴할 것이 없으면 Unit 타입을 리턴 타입으로 추론한다. fun unitFunction() { } println("result of unit function: ${unitFunction()}") /..