Callback ?
callback
이란 함수의 파라미터로 들어오는 함수로, 주로 비동기 작업의 결과를 처리하거나 비동기작업에 끝난 후 이벤트를 처리하는데 사용됩니다.
일반적으로 인터페이스
, 함수
, 람다식
으로 표현될 수 있습니다.
사용 방법
fun performAsyncTask(callback: (result: Int) -> Unit) {
// 비동기 작업 수행
val result = 42
// 작업이 완료되면 callback 호출하여 결과 전달
callback(result)
}
// 사용 예시
performAsyncTask { result ->
// 비동기 작업이 완료되면 실행될 코드
println("Result: $result")
}
interface ButtonClickListener {
fun onClick()
}
class Button {
private var clickListener: ButtonClickListener? = null
fun setOnClickListener(listener: ButtonClickListener) {
clickListener = listener
}
fun simulateClick() {
// 버튼 클릭 시 이벤트 발생
clickListener?.onClick()
}
}
// 사용 예시
val button = Button()
button.setOnClickListener(object : ButtonClickListener {
override fun onClick() {
println("Button clicked!")
}
})
// 버튼 클릭 시 이벤트 처리
button.simulateClick()
typealias CalculationCallback = (result: Int) -> Unit
fun performCalculation(callback: CalculationCallback) {
val result = 10 + 20
callback(result)
}
// 사용 예시
val callback: CalculationCallback = { result ->
println("Calculation result: $result")
}
performCalculation(callback)
interface TaskCompleteListener {
fun onComplete(result: String)
}
class TaskExecutor {
fun executeTask(listener: TaskCompleteListener) {
// 작업 실행
val result = "Task completed"
listener.onComplete(result)
}
}
// 사용 예시
val taskExecutor = TaskExecutor()
val listener = object : TaskCompleteListener {
override fun onComplete(result: String) {
println("Task result: $result")
}
}
taskExecutor.executeTask(listener)
fun performOperation(callback: (value: Int) -> Int) {
val result = callback(5)
println("Operation result: $result")
}
// 사용 예시
performOperation { value ->
value * 2
}