카테고리 없음
코틀린의 extension와 메소드 체이닝 잡담
dev.bistro
2017. 6. 2. 18:31
코틀린 1.0 으로 프로젝트를 진행 한 후 1년만에 다시 코틀린을 손에 잡았다.
뒤에 분이 '자바를 하려거든 코틀린'을 하세요~ 라는 노래를 부르고, 메인 프로젝트가 아니고 검증용 간단한 서비스를 필요로 했기에 부담없이 코틀린을 다시 쓰고 있는데....
역시 자바보다는 코틀린 ㅋ (개인적으로는 스칼라 >>>> 코틀린 >>>>>>>> 자바)
fun BufferedWriter.writeAndFlush(str: String) { this.write(str).let { newLine() }.let { flush() } }
자바로 했으면 메소드를 하나 만들고 Streams.writeAndFlush(bw, str) 을 했겠지만 코틀린은 뭐 저렇게 된다는..?
저 개념 자체는 http://docs.scala-lang.org/overviews/core/implicit-classes.html 로 비슷하게? 사용 했지만
https://kotlinlang.org/docs/reference/extensions.html#extensions 'Extension' 라는 단어 자체는 SWIFT에서 먼저 접하고 사용했다.
그리고 .let 은 정식 명칭이 멀까 찾아보니 못찾겠다 ㅋㅋ
참고 링크 1 : http://beust.com/weblog/2016/01/14/a-close-look-at-kotlins-let/
참고 링크 2: http://kunny.github.io/lecture/kotlin/2016/07/06/kotlin_let_apply_run_with/