일급함수를 함수에 인자로 넘겨줄때는 자료형을 잘 확인 해야 한다
이번에 있었던 케이스는
val 1stFunc = { it.something.seq }
fun groupByFunc(data: List<SomeThing>, selector: (someThing)-> Unit) { val data = data.groupBy(selector) return 원본 데이터
}fun groupByFunc(data: List<SomeThing>, selector: (someThing)-> Any) { val data = data.groupBy(selector) return 가공된 데이터
}
이런식으로 동작하였다
즉 올바른 함수를 전달해주어도 수신 하는 입장에서 타입이 정의되어 있다면 생각한 바와 다르게 동작한다.