val splitOnComma: (String) -> List<String> = { line ->
line.splitFields(“,”)
}
디폴트 값이 있으므로 클라이언트를 수정할 필요가 없었는데도 코드가 테스트를 통과한다. 이
제
readTable
은 제공받은
splitter
를 사용하지만
headerProviderFrom
은 그렇지 않다.
예제
22.46
[
table
-
reader
.
32
:
src
/
main
/
java
/
travelator
/
tablereader
/
table
-
reading
.
kt
]
private fun headerProviderFrom(header: String): (Int) -> String {
val headers = header.splitFields(“,”)
return { index -> headers[index] }
}
header
.
splitFields
(...)
에 대해 함수형 파라미터를 도입하면 다음과 같이 코드가 바뀐다.
예제
22.47
[
table
-
reader
.
33
:
src
/
main
/
java
/
travelator
/
tablereader
/
table
-
reading
.
kt
]
fun readTableWithHeader(
lines: List<String>
): List<Map<String, String>> =
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.