코틀린 (49) 썸네일형 리스트형 코틀린: Comparable 인터페이스와 Comparator 인터페이스 Comparable과 Comparator 인터페이스에 대한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 5.12 정렬을 참고하기 바랍니다.2개 인터페이스 모두 '비교(compare)'라는 이름을 갖고 있어 도대체 뭐가 다를까 궁금하죠. 가장 큰 차이점은 Comparable은 일반 클래스에서 구현 상속을 받아 사용하며, Comparator는 람다 식으로 다양한 방식의 비교 함수를 구현할 때 사용합니다.■ Comparable 인터페이스와 추상 메소드 compareTo() 먼저 Comparable 인터페이스를 상속받아 추상 메소드 compareTo()를 구현한 예입니다. compareTo() 메소드는 수신자 객체(this)와 비교 대상 객체(other)의 name 속성을 비교합.. 코틀린: fold와 reduce - 누적 합과 누적 곱 fold, reduce 함수에 관한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 5.13 집계(aggregate)를 참고하기 바랍니다.코틀린의 표준 라이브러리 함수는 어마무시하게 많습니다. 100% 믿고 사용할 수 있는 라이브러리 함수를 안쓴다는 건 그만큼 손해입니다. 이름만 생소할 뿐 사용 방법은 비교적 간단합니다. 사실 함수 이름도 아무렇게나 붙인 게 아닙니다. 여기서는 누적 합 (accumulated sum) 과 누적 곱 (accumulated product) 을 구하는 데 사용하는 fold와 reduce를 집중적으로 알아보겠습니다.컬렉션 원소의 누적 합이나 누적 곱을 구해야 할 때 여러분은 어떻게 구현합니까? 대부분 for 문을 사용하겠죠. 예제에서는 누적 곱을 구.. 코틀린: 한 걸음 뒤에서 컬렉션의 숲을 바라볼까요? 컬렉션(Collection)에 관한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 5.3 컬렉션을 참고하기 바랍니다. 컬렉션은 여러 개 원소를 갖는 객체 입니다. 우리가 다루는 객체 중 원소를 갖지 않는 객체가 과연 얼마나 될까요? 코틀린 표준 라이브러리는 거의 대부분 컬렉션에 관련된 함수들로 이루어져 있습니다. chunked, windowed, zipWithNext와 같은 함수가 어떤 함수인지 알고 있나요? 이름은 들어봤나요? 여러분이 열심히 고생해서 만든 함수가 코틀린 표준 라이브러리에 있을 가능성은 99%입니다.컬렉션을 잘 다룬다는 것은 효율적이고 안정적인 응용 프로그램을 만들 수 있다는 뜻이기도 합니다. 여러분, Iterable과 Collection의 관계에 대해 정확.. 코틀린: 4장 테스트에 도전해 보세요(3,4,5번 정답 해설) 문제 3 미완성 코드를 추가해 코드를 완성하는 문제입니다. 4개 속성을 선언하고 있지만 초기화를 하지 않았습니다. init 블록에서는 속성 name과 category를 주 생성자(primary constructor)에 전달된 형식 인자로 각각 초기화하면 됩니다. 속성 price와 quantity는 당장 초기화할 수 없으므로 초깃값을 할당해야 합니다. 첫 번째 부 생성자(secondary constructor)는 3개 인자, 두 번째 부 생성자는 4개 인자가 각각 필요합니다. 첫 번째 부 생성자는 3개 인자 중 name과 category의 초기화를 주 생성자로에게 위임하면 됩니다. 두 번째 부 생성자는 4개 인자 중 3개 인자(name, category, price)의 초기화를 첫 번째 부생성자에게 위임.. 코틀린: 4장 테스트에 도전해 보세요 쉽게 다가가는 최신 프로그래밍: 코틀린 - 4장 클래스를 완전히 이해했나요? 다음 문제를 풀어 보세요.문제 1 아래 코드를 참고하여 클래스 Calculator를 곱셈, 나눗셈이 가능한 클래스로 확장시켜 보세요.(1) 2개의 인터페이스(IMultiply, IDivide)를 선언하세요,(2) 클래스 Calculator가 (1)에서 정의한 인터페이스를 추가로 상속받아야 합니다.(3) main() 함수에 곱셈, 나눗셈 테스트를 위한 코드를 추가해야 합니다.interface IAddition { fun add(a: Int, b: Int)}interface ISubtract { fun sub(a: Int, b: Int)}class Calculator: IAddition, ISubtract { ove.. 코틀린: 멤버 참조 멤버 참조(member reference)에 관한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 3.2 함수형 프로그래밍, 3.3 람다 식: 기초를 참고하기 바랍니다. 멤버 참조란 이중 콜론(::)을 사용한 식입니다. "멤버 참조"란 용어 때문에 클래스의 멤버(메소드나 속성)만을 참조하는 것으로 오해하면 안됩니다. 가장 궁금한 건 이거겠죠. "클래스 멤버는 점 표기법(dot notation)을 사용해 참조하면 되는 데, 굳이 멤버 참조를 사용하는 이유가 뭔가요?" 함수를 예로 들면, 멤버 참조는 함수를 호출하는 것이 아니라 함수를 참조(refer)합니다. 함수를 호출하면 함수를 즉시 실행하고 결과를 반환합니다. 반면, 함수를 참조하면 함수를 실행하지 않습니다. 멤버 참조는 .. 코틀린: enum class(updated) enum class 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 4.14 enum 클래스를 참고하기 바랍니다. enum 클래스는 열거형(enumeration) 클래스를 말합니다. enum 클래스도 일반 클래스처럼 속성과 메소드를 선언할 수 있습니다.아래 enum 클래스 Selection은 3개의 상수(SCISSORS, ROCK, PAPER)를 선언합니다. Selection.values()는 enum 클래스에 정의된 상수 배열을 반환합니다. Selection.values() 대신 enumValues()를 사용해도 됩니다. enum 클래스 Selection의 멤버 함수 trial()은 가위, 바위, 보 중 어느 것을 선택했는지 알려주는 함수입니다.enum class Select.. 코틀린: 클래스 속성 - getter와 setter(updated) 클래스 속성(property)에 관한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 4.2 클래스 속성을 참고하기 바랍니다. 클래스 속성은 변수 아닌가? 아닙니다. 클래스 속성은 기본적으로 변수이지만 속성과 연관된 함수(getter 또는 setter)를 정의할 수 있습니다. 코틀린에서는 속성에 대한 getter, setter를 자동 생성한다던데... 반은 맞고 반은 틀립니다. 속성에 대한 getter와 setter도 목적에 맞게 정의할 수 있습니다. 여러분이 혹시 놓치고 있을지도 모를 클래스 속성에 대한 모든 것을 알아보겠습니다.■ 클래스에서 속성 선언: 디폴트 getter와 디폴트 setter클래스 Person은 2개의 속성(name과 age)을 갖습니다. 클래스 Perso.. 이전 1 2 3 4 5 6 7 다음