분류 전체보기 (53) 썸네일형 리스트형 코틀린: infix expression을 prefix expression으로 변환(1/5) - 문자열 방식 쉽게 다가가는 최신 프로그래밍: 코틀린 - 2.2 연산자 오버로딩에서 연산자 오버로딩은 중위 표기법(infix notation)을 사용합니다. 3.6.6 중위 함수 역시 중위 표기법을 사용합니다. 수식 2 + 3 처럼 연산자(operator)가 피연산자(operand) 가운데에 놓이는 표기법을 중위 표기법이라고 합니다. 기계어 코드(machine code)에서는 + 2 3 처럼 연산자가 앞에 오는 전위 표기법(prefix notation)을 사용합니다. 전위 표기법을 폴란드 표기법(polish notation, PN)이라 부릅니다. 2 3 +처럼 연산자가 마지막에 오는 표기법을 후위 표기법(postfix notation)이라 부릅니다. 후위 표기법을 RPN(reverse polish notation).. 코틀린: 5장 테스트에 도전해 보세요 (정답 해설) 문제 1 4개의 Person 타입 객체를 갖는 시퀀스 heroes 를 생성했습니다. (1) 나이가 가장 젊은 객체를 찾으세요.(2) 이름 순으로 객체를 정렬하세요.(3) 미혼인 객체를 모두 찾으세요.(4) 객체의 평균 나이를 구하세요.class Person(val name: String, val age: Int, val gender: Char, val martialStatus: Boolean) { override fun toString() = "$name $age $gender $martialStatus"}fun main() { val heroes = sequenceOf( Person("홍길동", 21, 'M', .. 코틀린: 5장 테스트에 도전해 보세요 쉽게 다가가는 최신 프로그래밍: 코틀린 - 5장 배열과 컬렉션을 완전히 이해했나요? 다음 문제를 풀어 보세요.문제 1 4개의 Person 타입 객체를 갖는 시퀀스 heroes 를 생성했습니다. (1) 나이가 가장 젊은 객체를 찾으세요.(2) 이름 순으로 객체를 정렬하세요.(3) 미혼인 객체를 모두 찾으세요.(4) 객체의 평균 나이를 구하세요.class Person(val name: String, val age: Int, val gender: Char, val martialStatus: Boolean) { override fun toString() = "$name $age $gender $martialStatus"}fun main().. 코틀린: 시퀀스(Sequence)와 컬렉션(Collection)은 뭐가 다를까요? 시퀀스(Sequence)에 관한 보충 설명입니다. 자세한 내용은 쉽게 다가가는 최신 프로그래밍: 코틀린 - 5.7 iterator와 sequence를 참고하기 바랍니다. 시퀀스와 컬렉션의 공통점은 "여러 개 원소를 다룰 수 있다" 입니다. 그러나, 원소를 저장하고 처리하는 방식은 전혀 다릅니다. 간단히 정리하면, 컬렉션은 열성적 처리(eager evaluation) 방식이며 시퀀스는 지연 처리(lazy evaluation) 방식입니다. eager는 "열성적인, 간절히 갈망하는" 뜻입니다. 컬렉션은 보자마자 달려드는 스타일인 반면, 시퀀스는 느긋하게 기다리는 스타일인 셈입니다. 여러 개 메소드를 연결해서 처리하는 메소드 체이닝(method chaining)으로 구현했을 때 유의해야 할 내용이 있습니다. 컬.. 코틀린: 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)의 초기화를 첫 번째 부생성자에게 위임.. 이전 1 2 3 4 5 6 7 다음