if (person != null && person.isAdult) {
view.showPerson(person)
} else {
view.showError()
}
// vs
person?.takeIf { it.isAdult }
?.let(view::showPerson)
?: view.showError()
책에서는 전통적 스타일인 전자 형태로 구현한 방법이 좀더 가독성이 좋다고 주장하고 있음( 코틀린 문법에 적응하지 못했을 경우 어려울 수 있다?)
→ 전혀 그렇게 생각되지 않음. 코틀린 문법이 배우는데 오래걸리는것도 아니고, 함수형이 일반적으로 전통적인 방법보다 훨씬 사람이 이해하기 편하다고 생각함
students
.filter { it.result >= 50 }
.joinToString(separator = "\\n") { "${it.name} ${it.surname}, ${it.result}" }
.let(::print)
var obj = FileInputStream("/file.gz")
.let(::BufferedInputStream)
.let(::ZipInputStream)
.let(::ObjectInputStream)
.readObject() as SomeObject
let을 사용하기 좋은 2가지 예.
비용을 지불할만한 가치가 있고 비용은 그럴 가치가 있을떄만 지불해야한다….
컨벤션에는 여러가지 것들이 있고, 앞으로 그걸 알아볼 예정