일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- kubenetes
- 해시
- H-index
- 스프링 스케쥴러
- 쿠버네티스
- K번째수
- @Setter
- 모던 자바 인 액션
- 커링
- 완주하지 못한 선수
- 기능개발
- 전화번호 목록
- @Getter
- @EnableScheduling
- 크론 표현식
- 스택/큐
- @configuration
- 가장 큰 수
- 영속 자료구조
- 검색 기능 확장
- 다리를 지나는 트럭
- 루씬 인 액션
- Java
- @Data
- 코딩 테스트
- 프로그래머스
- 알고리즘
- 고차원 함수
- 정렬
- 롬복 어노테이션
- Today
- Total
목록전체 글 (140)
Today I Learned

외부 반복자 vs 내부 반복자 val numbers = listOf(10, 12, 15, 17, 18, 19) for (i in numbers) { if (i % 2 == 0) { print("$i, ") //10, 12, 18, } } 전통적인 외부 반복자(for..in)에서 리스트의 짝수만 출력하려고하면 위와 같이 변수 i를 사용해서 확인한다. numbers.filter { e -> e % 2 == 0 } .forEach { e -> print("$e, ") } //10, 12, 18, 코틀린 스탠다드 라이브러리는 콜렉션에 몇 가지 확장 함수를 추가했다. 위 예제에서는 구 중 filter()와 forEach()를 사용한다. 위와 같이 내부 반복자를 샅용하면 더 간결하고 읽기 쉽다. 두 스타일의 차이점..

비지역성(non-local)과 라벨(labeled) 리턴 리턴은 허용되지 않는 게 기본이다 람다에서 return은 허용되지 않지만 특별한 상황에서는 사용할 수 있다. fun invokeWith(n: Int, action: (Int) -> Unit) { println("enter invokeWith $n") action(n) println("exit invokeWith $n") } fun caller() { (1..3).forEach { i -> invokeWith(i) { println("enter for $it") if (it == 2) { return } //ERROR, return is not allowed here println("exit for $it") } } println("end of ca..

함수형 스타일 함수형 스타일이 뭐야? var doubleOfEven = mutableListOf() for (i in 1..10) { if (i % 2 == 0) { doubleOfEven.add(i*2) } } 명령형 프로그래밍에서는 1부터 10 까지의 숫자 중에 짝수의 2배의 값을 계산하기 위해, 먼저 비어있는 뮤터블 리스트를 만든다. 그리고 1~10 까지 값을 가지고 있는 콜렉션에서 짝수 값을 골라내고, 뮤터블 리스트에 짝수를 2배로 만들어서 추가한다. val doubleOfEven = (1..10) .filter {e -> e % 2 == 0} .map {e -> e * 2} 함수형 프로그래밍에서는 IntRange 클래스의 filter(), map() 같은 고차함수를 사용할 수 있다. 뮤터블 리스..

변수와 속성 델리게이션 변수 델리게이션 package com.agiledeveloper.delegates import kotlin.reflect.KProperty class PoliteString(var content : String) { operator fun getValue(thisRef: Any?, property: KProperty) = content.replace("stupid", "s****") operator fun setValue(thisRef: Any, property: KProperty, value: String) { content = value } } import com.agiledeveloper.delegates.PoliteString var commnet: String by Pol..