b

코틀린의 extension와 메소드 체이닝 잡담 본문

카테고리 없음

코틀린의 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/


Comments