Language/Kotlin 3

[Kotlin] 일급함수(First-class citizen) 코틀린의 함수는 일급함수입니다. 일급함수는 아래와 같은 조건을 만족하는 것을 말합니다. 변수나 데이터를 할당 할 수 있어야 한다. (variable) 객체의 인자로 넘길 수 있어야 한다. (parameter) 객체의 리턴값으로 리턴 할 수 있어야 한다. (return value) 변수나 데이터를 할당 할 수 있어야 한다. val test: () -> String = { "function" } 객체의 인자로 넘길 수 있어야 한다. val test: () -> String = { "function" } fun func(f: () -> String): Unit { println("$f") } 객체의 리턴값으로 리턴 할 수 있어야 한다. fun func(): () -> Unit { return { println.. Language/Kotlin 2020. 9. 16.
[Kotlin] 스코프함수 (Scope Function) 코틀린 표준 라이브러리는 객체의 컨텍스트 내에서 코드 블럭을 실행하기 위한 목적만을 가진 함수를 제공합니다. 이런 함수들은 람다식으로 호출할 때, 임시로 범위를 형성합니다. 이 범위 내에서는 객체의 이름이 없어도 객체에 접근할 수 있습니다. 이러한 함수를 스코프 함수라고 하고 스코프 함수는 새로는 기능을 제공하는 것이 아니라 코드의 가독성을 향상 시키는 역할을 합니다. 스코프 함수는 apply, run, with, also, let이 있고 이 함수들은 임시로 생성된 객체의 코드블럭을 실행합니다. 함수는 객체의 컨텍스트를 참조하는 방식, 리턴값으로 사용여부를 판단합니다. 컨텍스트 객체(Context Object) 스코프 함수의 람다식 내에서 컴텍스트 객체는 참조 이름으로 사용할 수 있습니다. 람다 수신자(.. Language/Kotlin 2020. 9. 8.
[Kotlin] 열거형 클래스 (Enum Class) 열거형 클래스를 쓰는 이유 코드가 단순해 진다. 가독성이 좋다. 서로 관련 있는 상수들을 모아 심볼릭한 명칭의 집합으로 정의한 것 새로운 열거형을 선언하면, 내부적으로 Enum 클래스형 기반의 새로우누 클래스형이 만들어짐. 클래스처럼 보이게 하는 상수 // 이름으로만 정의 가능 enum class Suit { CLUBS, DIAMONDS, HEARTS, SPADES } // 이름과 프로퍼티로 정의 가능 enum class Denomination(val initial: String, val score: Int) { ACE("A", 11), TWO("2", 2), THREE("3", 3), FOUR("4", 4), FIVE("5", 5), SIX("6", 6), SEVEN("7", 7), EIGHT("8",.. Language/Kotlin 2020. 9. 8.