kotlin 16

[Kotlin In Action] 함수 코틀린 함수의 특징 fun를 키워드를 사용하여 함수를 정의합니다. 파라미터 이름 뒤에 파라미터의 타입을 작성합니다. 함수를 최상위 수준에 정의 할 수 있습니다. 자바처럼 꼭 클래스 안에 함수를 넣을 필요가 없습니다. 배열도 일반적인 클래스와 마찬가지입니다. 자바와 달리 배열 처리를 위한 문법이 따로 존재하지 않습니다. println과 같은 래퍼 함수를 제공합니다. 줄 끝에 세미콜론을 붙이지 않아도 됩니다. 식이 본문인 함수, 블록이 본문인 함수 두가지가 될 수 있습니다. 식이 본문인 함수의 반환 타입만 생략이 가능합니다. 블록이 본문인 함수는 반환타입을 지정해야 합니다. 블록이 본문인 함수의 경우 Unit 타입의 경우 반환타입이 생략 가능합니다. 식이 본문인 함수의 경우 굳이 반환 타입을 지정해 주지 않.. Language/Kotlin In Action 2021. 4. 13.
정적 타입 지정 vs 동적 타입 지정 정적 타입 지정 언어 정적 타입 지정 언어는 C, C#, C++, Java, Kotlin 등의 언어가 있습니다. 정적 타입 지정 언어는 변수에 들어갈 값에 따라 미리 자료형을 지정해주어야 합니다. 정적 타입 지정 언어는 모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 필드나 메소드를 사용할 때마다 컴파일러가 타입을 검증해줍니다. 런타임에서 어떤 메소드를 호출할 지 알아내는 과정이 생략되어 메소드 호출이 더 빠릅니다. 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 낮아집니다. 코드에서 다루는 객체가 어떤 타입에 속하는지 알 수 있기 때문에 파악하기가 쉽습니다. 동적 타입 지정 언어 동적 타입 지정 언어는 JavaScript, Groov.. Computer Science/Programming 2021. 3. 29.
[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.
[Android] Context란? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 애플리케이션 환경에 대한 글로벌 정보에 대한 인터페이스입니다. 이것은 Android 시스템에서 구현하는 추상 클.. Domain/Android 2020. 9. 8.
[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.