전체 글253 [깡샘의 코틀린 프로그래밍] 정리 18 - 리플렉션 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 18장. 리플렉션과 어노테이션 18.1.1. 리플렉션 이해 리플렉션이란? 리플렉션(Reflection)은 사전적 의미로 투영, 반사라는 뜻입니다. 프로그램에서 리플렉션은 런타임 때 프로그램의 구조(객체, 함수, 프로퍼티)를 분석해 내는 기법을 이야기합니다. 예를 들어 어떤 함수를 정의하는데 함수의 매개변수로 클래스 타입을 선언하고 런타임 때 매개변수로 전달된 클래스의 이름, 클래스의 함수나 프로퍼티를 동적으로 판단하는 작업을 리플렉션이라고 합니다. 코틀린에서 리플렉션을 위해서는 라이브러리가 필요합니다. kotlin-reflect.jar라는 .. 2018. 3. 2. [깡샘의 코틀린 프로그래밍] 정리 17 - Variance 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 17장. 제네릭 17.3.1. Variance란? 제네릭에서 Variance (가변, 공변 등으로 해석되지만 이 책에서는 Variance로 칭하겠습니다)란 타입과 관련된 이야기입니다. 상하위 관계에서 타입 변형과 관련 있습니다. 우선 제네릭의 Variance를 이해하기 위해 클래스의 상하위 관계에 대해 살펴보겠습니다. Super라는 클래스가 있고 이 클래스를 상속받아 Sub 클래스를 선언했다고 가정해 보겠습니다. 그러면 Sub 타입의 객체를 Super 타입에 대입하고 다시 Super 타입으로 캐스팅할 수 있습니다 01 package seve.. 2018. 3. 2. [깡샘의 코틀린 프로그래밍] 정리 16 - Extension 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 16장. 클래스 Extension 16.1.1. 확장이란? 클래스 내에 함수와 프로퍼티를 선언합니다. 그런데 때로는 클래스의 확장(Extension)이 필요합니다. 확장이라는 것은 클래스 내부에 선언한 함수와 프로퍼티 이외에 다른 함수나 프로퍼티를 추가해서 이용하는 것입니다. 객체지향 프로그래밍에서 일반적으로 클래스 확장을 위해 사용하는 방법은 상속 기법입니다. 그러나 이 책에서는 용어의 혼동을 피하고자 확장이라는 단어는 상속을 통하지 않고 기능을 추가하는 방법에만 사용하겠습니다. 상속은 객체지향 프로그래밍의 핵심입니다. 상위 클래스를 정의.. 2018. 3. 2. [깡샘의 코틀린 프로그래밍] 정리 15 - Null Safety 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 15장. Null Safety와 예외처리 15.1.1. Null Safety 란? Null이란 프로그램에서 아무 값도 대입하지 않은 상태를 말합니다. 프로그램의 데이터는 메모리에 저장합니다. 그런데 데이터가 메모리의 어느 위치에 저장됐는지 알아야 그 메모리에 접근해 데이터를 가져오거나 수정할 수 있습니다. 이때 데이터가 저장된 메모리의 위치를 주소 값이라고 표현하는데, 그 주소 값이 없는 상태가 Null입니다. 특히 객체는(코틀린에서는 모든 것이 객체입니다) 흔히 참조 변수라고 표현해서 실제 객체에 데이터가 대입된 게 아니라 데이터를 가지는.. 2018. 3. 2. [깡샘의 코틀린 프로그래밍] 정리 14 - forEach() 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 14장. 컬렉션 타입과 람다 14.1.1. forEach( ), forEachIndexed( ) 컬렉션 타입의 데이터를 이용할 때 forEach ( ) 함수도 자주 이용합니다. forEach ( ) 함수는 단순히 컬렉션 타입의 데이터 개수만큼 특정 구문을 반복 실행할 때 유용합니다 01 val resultList2 = list2.filter { it > 10 } 02 for(i in resultList2){ 03 println(i) 04 } filter ( ) 함수로 데이터를 필터링하고 필터링 된 데이터를 로그로 출력하는 코드입니다. for.. 2018. 3. 2. [깡샘의 코틀린 프로그래밍] 정리 13 - 고차 함수 본 글은 [깡샘의 코틀린 프로그래밍 - 루비페이퍼] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 13장. 고차함수와 인라인 함수 13.1.1. 고차 함수란? 고차 함수(High-Order Function, 고계 함수라고도 합니다)란, 매개변수로 함수를 전달받거나 함수를 반환하는 함수를 말합니다. 일반적인 함수는 매개변수와 반환값이 데이터입니다 01 fun normalFun(x1: Int, x2: Int): Int{ 02 return x1 + x2 03 } 위의 소스는 일반 함수의 정의법입니다. Int 타입인 두 개의 매개변수를 전달받고 함수의 실행 결과로 Int 타입의 데이터를 반환합니다. 매개변수와 반환값이 데이터입니다. 그런데 고차.. 2018. 3. 2. 이전 1 ··· 28 29 30 31 32 33 34 ··· 43 다음