본문 바로가기

전체 글36

[Do it! 코틀린 프로그래밍] 10. 표준 함수와 입출력 10. 표준 함수와 입출력 1. 코틀린 표준 함수 표준 함수를 이용하면 코드를 더 단순화하고 읽기 쉽게 만들어 준다. 코틀린 표준 함수는 람다식과 고차 함수를 이용해 선언되어 있다. 앞서 클로저에 대해 살펴보고 표준 함수에 대해 알아보도록 한다. 클로저(Closure) 람다식으로 표현된 내부 함수에서 외부 범위에 선언된 변수에 접근할 수 있는 개념을 말한다. 람다식 안에 있는 외부 변수는 값을 유지하기 위해 람다식이 포획(Capture)한 변수라고 부른다. 포획한 변수는 참조가 유지되어 함수가 종료되어도 사라지지 않고 접근하거나 수정할 수 있다. 클로저의 조건 final 변수를 포획한 경우, 변수 값을 람다식과 함께 저장한다. final이 아닌 변수를 포획한 경우, 변수를 특정 래퍼(wrapper)로 감.. 2021. 5. 10.
[Do it! 코틀린 프로그래밍] 9. 컬렉션 9. 컬렉션 1. 컬랙션의 구조와 기본 컬렉션(Collection) 이란 자주 사용하는 기초적인 자료구조를 모아 놓은 일종의 프레임워크로 표준 라이브러리로 제공된다. Link 컬렉션 종류 컬렉션 불변형(읽기 전용) 가변형 List listOf mutableListOf, arrayListOf Set setOf mutableSetOf, hashSetOf, linkedSetOf, sortedSetOf Map mapOf mutableMapOf, hashMapOf, linkedMapOf, sortedMapOf Collection 인터페이스 멤버 멤버 설명 size 컬렉션의 크기를 나타낸다. isEmpty() 컬렉션이 비어 있는 경우 true를 반환한다. contains(element: E) 특정 요소가 있다면 t.. 2021. 5. 1.
[Do it! 코틀린 프로그래밍] 8. 제네릭과 배열 8. 제네릭과 배열 1. 제네릭 다루기 제네릭(Generic) 은 클래스 내부에서 사용할 자료형을 나중에 인스턴스를 생성할 때 확정한다. 객체의 자료형을 컴파일할 때 체크하기 때문에 객체 자료형의 안정성을 높이고 형 변환의 번거로움을 줄인다. /* 간단한 제네릭 예시 */ // 앵글 브래킷() 사이에 형식 매개변수 이름을 넣어 자료형을 대체한다. class Box(var name: T) fun main() { val box1 = Box(1) // 1은 Int 타입이므로 Box으로 추론 val box2 = Box("Hello") // "Hello"는 String 타입이므로 Box으로 추론 println(box1.name) // 1 println(box2.name) // Hello } 일반적으로 제네릭에서 .. 2021. 4. 25.
[Do it! 코틀린 프로그래밍] 7. 다양한 클래스와 인터페이스 7. 다양한 클래스와 인터페이스 1. 추상 클래스와 인터페이스 추상 클래스(Abstract Class) 선언 등의 대략적인 설계 명세와 공통의 기능을 구현한 클래스다. 추상 클래스를 상속하는 하위 클래스는 내용을 더 구체화해야 한다. 코틀린에서 추상 클래스의 정의는 abstract 키워드를 사용한다. 기본적으로 상속과 오버라이딩을 허용하기 때문에 open 키워드를 사용할 필요가 없다. /* 추상 클래스 Vehicle 사용 */ abstract class Vehicle(val name: String, val color: String, val weight: Double) { // Abstrect Property - 반드시 하위 클래스에서 재정의하여 초기화해야함 abstract var maxSpeed: Dou.. 2021. 4. 19.