Map
에서 매개변수가 블록으로 전달되는 경우가 흔하다.
Map
을 전달하고 내부 데이터를 꺼내 쓰면 어떤 데이터가 필요한지 알기 어렵다.val params = mapOf(a to 1, b to 2)
foo(params)
fun foo(params: Map<String, Int>) {
// params[a] ... params[b]
}
foo
를 나누면 명시적 매개변수 정리를 적용할 수 있다.fun foo(params: Map<String, Int>) {
fooBody(params[a], params[b])
}
fun fooBody(a: Int, b: Int) {
/// ... a ... b ...
}