일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Streams
- PAGING
- API
- spring
- transactionaleventlistener
- CI
- Entity
- offsetdatetime
- mirror maker2
- topic생성
- AWS
- Spring JPA
- Kubernetes
- consumer
- spring kafka
- entity graph
- kafka
- producer
- Spring Data JPA
- mysql
- Kotlin
- git
- JPA
- CodePipeline
- QueryDSL
- cd
- K8s
- bean
- ECS
- centos7
- Today
- Total
목록Kotlin (9)
Yebali

고차 함수 함수를 마치 클래스에서 만들어 낸 '인스턴스'처럼 취급하는 방법이다. 함수를 파라미터로 전달할 수 있도 물론 반환 값도 받을 수 있다. fun a (str:String) { println("$str 함수 a") } // 'Unit'의 의미는 반환하는 값이 없다는 의미 fun b (function: (String) -> Unit) { function("b가 호출한") //"b가 호출한"의 값이 함수 a에 전달되는 꼴 } fun main() { b(::a) } 함수를 파라미터로 전달할 때에는 ':: + 함수명'의 형태로 전달한다. b함수에 파라미터로 전달된 '::a'는 함수 a가 파라미터로 전달되었다는 의미이다. 람다 함수 위 고차 함수의 예제에서 파라미터로 전달할 함수에 이름까지 붙여주는 정성이..

추상화와 인터페이스를 알기 전 알고 가야 할 개념이 함수의 오버라이딩이다. 함수 오버라이딩 오버라이딩이란 클래스를 상속받아서 구현할 때, 슈퍼 클래스에 구현되어있는 메서드를 서브 클래스가 재정의하여 구현하는 기능이다. 클래스를 상속할 때와 비슷하게 매서드에 'open'키워드를 붙여야 한다. 오버라이딩하는 매서드에는 'override'키워드를 붙여 재 구현하면 된다. open class Animal() { open fun eat() { println("eat food") } } class Tiger : Animal() { override fun eat() { println("eat meat") } } fun main() { var t = Tiger() t.eat() // "eat meat"이 출력된다 } ..

코틀린에서 클래스를 다루는 방법을 알아보자 속성 값만 있는 클래스 class Person (var name: String, val birthYear: Int) fun main() { var a = Person("예바리", 2004) } 내부에 매서드 없이 속성 값만 가지는 클래스는 위에서 처럼 선언될 수 있다. 하지만 대부분의 클래스는 매서드를 함께 가지고 있다. 멤버 함수를 갖는 클래스 class Person (var name: String, val birthYear: Int) { fun introduce() { println("안녕하세요. ${birthYear}년생 ${name}입니다") } } fun main() { var a = Person("예바리", 2004) a.introduce() } 멤버..